Beim Versuch, AUTO_INCREMENT zum automatischen Nummerieren von Primärschlüsseln in PostgreSQL zu verwenden, können Fehler auftreten. Schauen wir uns die möglichen Ursachen und ihre Lösungen an:
In PostgreSQL 10 und höher wird empfohlen, die IDENTITY-Spalte von Standard-SQL anstelle von AUTO_INCREMENT zu verwenden.
<code class="language-sql">CREATE TABLE staff ( staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY , staff text NOT NULL );</code>
<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;</code>
Machen Sie dies auch zum Primärschlüssel:
<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY;</code>
Verwenden Sie für 9.6 oder niedriger den seriellen Pseudodatentyp:
<code class="language-sql">CREATE TABLE staff ( staff_id serial PRIMARY KEY , staff text NOT NULL );</code>
Bitte stellen Sie sicher, dass Sie gültige Bezeichner verwenden (Kleinbuchstaben, keine Anführungszeichen), um mögliche Probleme zu vermeiden.
Wenn Sie serielle Spalten durch IDENTITY-Spalten ersetzen möchten, lesen Sie bitte dieses Dokument als Anleitung.
Sie können OVERRIDING {SYSTEM|USER} VALUE verwenden, um Systemwerte oder Benutzereingaben in INSERT-Befehlen zu überschreiben.
Das obige ist der detaillierte Inhalt vonWie kann ich automatisch inkrementierende Primärschlüssel in PostgreSQL richtig implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!