Heim >Datenbank >MySQL-Tutorial >Wie implementieren ich automatisch inkrementierende Spalten in PostgreSQL?

Wie implementieren ich automatisch inkrementierende Spalten in PostgreSQL?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-22 11:32:09507Durchsuche

How Do I Implement Auto-Incrementing Columns in PostgreSQL?

Implementieren von Spalten mit automatischer Inkrementierung in PostgreSQL

Beim Versuch, AUTO_INCREMENT zum automatischen Nummerieren von Primärschlüsseln in PostgreSQL zu verwenden, kann ein Fehler auftreten. Die folgende SQL zeigt ein Beispiel für den Versuch, eine Tabelle mit AUTO_INCREMENT zu erstellen:

<code class="language-sql">CREATE TABLE Staff   (
  ID        INTEGER NOT NULL AUTO_INCREMENT,
  Name      VARCHAR(40) NOT NULL,
  PRIMARY KEY (ID)
);</code>

Es wird jedoch ein Fehler zurückgegeben:

<code>ERROR: ERROR: syntax error at or near "AUTO_INCREMENT"
SQL state: 42601
Character: 63</code>

PostgreSQL-Version und automatische Inkrementierung

Dieser Fehler tritt auf, weil AUTO_INCREMENT keine gültige Syntax für die automatische Inkrementierung in PostgreSQL ist. Stattdessen werden je nach PostgreSQL-Version unterschiedliche Mechanismen verwendet:

PostgreSQL 10 oder höher

Verwenden Sie für PostgreSQL 10 oder höher den Spaltentyp IDENTITY. Die Syntax lautet wie folgt:

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

PostgreSQL 9.6 oder niedriger

Verwenden Sie für PostgreSQL 9.6 oder niedriger den seriellen Datentyp:

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

serielle Pseudodatentyp erstellt automatisch ein Sequenzobjekt und setzt DEFAULT auf den nächsten Wert der Sequenz.

Andere Hinweise

  • Verwenden Sie zur einfacheren Verwendung in PostgreSQL zulässige Bezeichner in Kleinbuchstaben und ohne Anführungszeichen.
  • Verwenden Sie OVERRIDING {SYSTEM|USER} VALUE nach Bedarf, um Systemwerte oder Benutzereingaben in INSERT-Befehlen zu überschreiben.

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

Stellungnahme:
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