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

Automatisk stigning i tabelkolonnen

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.



  1. Parse json gennem json_table i oracle 18

  2. 2 måder at tilføje et procenttegn til et tal i SQLite

  3. Liste over NLS-parametre i Oracle-databasen

  4. Gruppevist maksimum