Postgres 10 o successivo
serial
le colonne (vedi sotto) rimangono invariate. Ma considera un IDENTITY
colonna. Postgres 10 implementa questa funzionalità SQL standard.
Sintassi di base e informazioni nel manuale per CREATE TABLE
.
Spiegazione dettagliata in questo post di blog del suo autore principale Peter Eisentraut.
Crea tabella con IDENTITY
colonna
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
Aggiungi IDENTITY
colonna alla tabella esistente
La tabella può o non può essere popolata con righe.
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
Per renderlo anche il PK allo stesso tempo (la tabella non può ancora avere un PK):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
Correlati:
- Come aggiungere una colonna di identità PostgreSQL 10 a una tabella esistente con righe?
Sostituisci serial
con IDENTITY
colonna
Vedi:
- Come modificare un ID tabella da seriale a identità?
Postgres 9.6 o precedente
(O qualsiasi versione, in realtà.)
Utilizza il serial
pseudo tipo di dati invece:
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
Crea e allega automaticamente l'oggetto sequenza e imposta il DEFAULT
a nextval()
dalla sequenza. Fa tutto ciò di cui hai bisogno.
Ho usato identificatori minuscoli nel mio esempio. Ti semplifica la vita con Postgres.