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.