Postgres 10 eller senare
serial
kolumner (se nedan) förblir oförändrade. Men överväg en IDENTITY
kolumn. Postgres 10 implementerar denna standard-SQL-funktion.
Grundläggande syntax och information i manualen för CREATE TABLE
.
Detaljerad förklaring i det här blogginlägget av dess primära författare Peter Eisentraut.
Skapa tabell med IDENTITY
kolumn
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
Lägg till IDENTITY
kolumn till befintlig tabell
Tabell kan vara fylld med rader eller inte.
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
För att också göra det till PK samtidigt (tabellen kan inte ha en PK ännu):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
Relaterat:
- Hur lägger man till en PostgreSQL 10-identitetskolumn till en befintlig tabell med rader?
Ersätt serial
med IDENTITY
kolumn
Se:
- Hur ändrar man ett tabell-ID från seriell till identitet?
Postgres 9.6 eller äldre
(Eller vilken version som helst.)
Använd serial
pseudodatatyp istället:
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
Den skapar och bifogar sekvensobjektet automatiskt och ställer in DEFAULT
till nextval()
från sekvensen. Den gör allt du behöver.
Jag använde gemener i mitt exempel. Gör ditt liv med Postgres enklare.