Postgres 10 eller senere
serial
kolonner (se nedenfor) forbliver uændrede. Men overvej en IDENTITY
kolonne. Postgres 10 implementerer denne standard-SQL-funktion.
Grundlæggende syntaks og info i manualen til CREATE TABLE
.
Detaljeret forklaring i dette blogindlæg af dets primære forfatter Peter Eisentraut.
Opret tabel med IDENTITY
kolonne
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
Tilføj IDENTITY
kolonne til eksisterende tabel
Tabellen kan være udfyldt med rækker eller ikke.
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
For også at gøre det til PK på samme tid (tabellen kan ikke have en PK endnu):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
Relateret:
- Hvordan tilføjer man en PostgreSQL 10-identitetskolonne til en eksisterende tabel med rækker?
Erstat serial
med IDENTITY
kolonne
Se:
- Hvordan ændres et tabel-id fra seriel til identitet?
Postgres 9.6 eller ældre
(Eller en hvilken som helst version, egentlig.)
Brug serial
pseudodatatype i stedet:
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
Den opretter og vedhæfter sekvensobjektet automatisk og indstiller DEFAULT
til nextval()
fra sekvensen. Den gør alt, hvad du behøver.
Jeg brugte små bogstaver i mit eksempel. Gør dit liv med Postgres lettere.