PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Colonna della tabella con incremento automatico

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.