sql >> Databáze >  >> RDS >> PostgreSQL

Automatické zvýšení sloupce tabulky

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.



  1. Jaký je nejlepší způsob zobrazení obrázku z databáze serveru SQL v asp.net?

  2. Typy kurzorů SQL Server - Co jsou statické kurzory v SQL Server | Kurz SQL Server / Kurz TSQL

  3. Oracle Rozdíly mezi NVL a Coalesce

  4. Rails/Postgresql rozdíly SQL s daty