PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Tabellenspalte automatisch erhöhen

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.