Postgres 10 nebo novější
serial
sloupce (viz níže) zůstávají beze změny. Ale zvažte IDENTITY
sloupec. Postgres 10 implementuje tuto standardní funkci SQL.
Základní syntaxe a informace v manuálu pro CREATE TABLE
.
Podrobné vysvětlení v tomto příspěvku na blogu jeho hlavního autora Petera Eisentrauta.
Vytvořit tabulka s IDENTITY
sloupec
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
Přidat IDENTITY
sloupec do existující tabulky
Tabulka může, ale nemusí být naplněna řádky.
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
Chcete-li z něj zároveň udělat PK (tabulka ještě nemůže mít PK):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
Související:
- Jak přidat sloupec identity PostgreSQL 10 do existující tabulky s řádky?
Nahradit serial
s IDENTITY
sloupec
Viz:
- Jak změnit ID tabulky ze sériového na identitní?
Postgres 9.6 nebo starší
(Nebo jakoukoli verzi, opravdu.)
Použijte serial
místo toho pseudo datový typ:
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
Automaticky vytvoří a připojí objekt sekvence a nastaví DEFAULT
na nextval()
ze sekvence. Dělá vše, co potřebujete.
Ve svém příkladu jsem použil malá písmena identifikátorů. Usnadňuje vám život s Postgres.