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.