Postgres 10 oder höher
serial Spalten (siehe unten) bleiben unverändert. Aber betrachten Sie eine IDENTITY Säule. Postgres 10 implementiert diese Standard-SQL-Funktion.
Grundlegende Syntax und Informationen im Handbuch für CREATE TABLE .
Ausführliche Erklärung in diesem Blog-Eintrag des Erstautors Peter Eisentraut.
Erstellen Tabelle mit IDENTITY Spalte
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
); Hinzufügen IDENTITY Spalte in bestehende Tabelle
Die Tabelle kann mit Zeilen gefüllt sein oder nicht.
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
Um es gleichzeitig auch zum PK zu machen (Tabelle kann noch kein PK haben):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
Verwandte:
- Wie füge ich eine PostgreSQL 10-Identitätsspalte zu einer vorhandenen Tabelle mit Zeilen hinzu?
Ersetzen serial mit IDENTITY Spalte
Siehe:
- Wie ändere ich eine Tabellen-ID von seriell in Identität?
Postgres 9.6 oder älter
(Oder eigentlich jede Version.)
Verwenden Sie die serial Pseudo-Datentyp statt:
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
Es erstellt und hängt das Sequenzobjekt automatisch an und setzt den DEFAULT zu nextval() aus der Folge. Es tut alles, was Sie brauchen.
Ich habe in meinem Beispiel Kleinbuchstaben verwendet. Macht Ihr Leben mit Postgres einfacher.