Heim > Datenbank > MySQL-Tutorial > Wie implementiert man automatisch inkrementierende Spalten in PostgreSQL?

Wie implementiert man automatisch inkrementierende Spalten in PostgreSQL?

Patricia Arquette
Freigeben: 2025-01-22 11:27:08
Original
975 Leute haben es durchsucht

How to Implement Auto-Incrementing Columns in PostgreSQL?

Ausführliche Erklärung zur Implementierung automatisch inkrementierender PostgreSQL-Spalten

Beim Erstellen einer Tabelle in PostgreSQL können Fehler auftreten, wenn Sie versuchen, die Option AUTO_INCREMENT für eine Primärschlüsselspalte zu verwenden. Dieser Artikel befasst sich mit diesem Problem und bietet eine umfassende Lösung für die automatische Inkrementierung von Tabellenspalten.

AUTO_INCREMENT-Syntaxfehler

Die aufgetretene Fehlermeldung weist auf einen Syntaxfehler im Zusammenhang mit dem Schlüsselwort AUTO_INCREMENT hin. PostgreSQL unterstützt das Schlüsselwort AUTO_INCREMENT nicht. Stattdessen werden verschiedene Techniken verwendet, um Primärschlüsselwerte automatisch zu generieren.

PostgreSQL 10 und höher: IDENTITY-Spalte

Für PostgreSQL 10 und höher ist die IDENTITY-Spalte die bevorzugte Methode zur automatischen Inkrementierung von Primärschlüsseln. Eine IDENTITY-Spalte ist ein besonderer Spaltentyp, der automatisch einen eindeutigen Wert für jede Zeile generiert.

So erstellen Sie eine Tabelle mit einer IDENTITY-Spalte:

<code class="language-sql">CREATE TABLE staff (
  staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  staff text NOT NULL
);</code>
Nach dem Login kopieren
Die

GENERATED ALWAYS-Klausel stellt sicher, dass Spaltenwerte automatisch generiert werden, auch wenn Werte explizit in der INSERT-Anweisung bereitgestellt werden.

PostgreSQL 9.6 und niedriger: serielle Spalte

Für PostgreSQL 9.6 und niedriger kann der serielle Pseudodatentyp verwendet werden, um Primärschlüssel automatisch zu inkrementieren. Die serielle Spalte erstellt im Hintergrund ein Sequenzobjekt und setzt den Standardwert der Spalte automatisch auf den nächsten Wert in der Sequenz.

So erstellen Sie eine Tabelle mit einer seriellen Spalte:

<code class="language-sql">CREATE TABLE staff (
  staff_id serial PRIMARY KEY,
  staff text NOT NULL
);</code>
Nach dem Login kopieren

Standardwert überschreiben

Sowohl IDENTITY- als auch serielle Spalten generieren automatisch Werte, Sie können diese Werte jedoch mit der Syntax OVERRIDING SYSTEM|USER VALUE in der INSERT-Anweisung überschreiben.

Zusätzliche Hinweise

  • Es wird empfohlen, in PostgreSQL 10 und höher IDENTITY-Spalten anstelle von seriellen Spalten zu verwenden.
  • Bevorzugen Sie in PostgreSQL zulässige Bezeichner in Kleinbuchstaben und ohne Anführungszeichen, um die Datenbankverwaltung zu vereinfachen.

Das obige ist der detaillierte Inhalt vonWie implementiert man automatisch inkrementierende Spalten in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage