PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Kolumna tabeli automatycznego przyrostu

Postgres 10 lub nowszy

serial kolumny (patrz poniżej) pozostają niezmienione. Ale rozważ IDENTITY kolumna. Postgres 10 implementuje tę funkcję standardowego SQL.

Podstawowa składnia i informacje w podręczniku CREATE TABLE .
Szczegółowe wyjaśnienie w tym wpisie na blogu jego głównego autora, Petera Eisentrauta.

Utwórz tabela z IDENTITY kolumna

CREATE TABLE staff (
   staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
 , staff    text NOT NULL
);

Dodaj IDENTITY kolumna do istniejącej tabeli

Tabela może, ale nie musi być wypełniona wierszami.

ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;

Aby jednocześnie uczynić go PK (stół nie może jeszcze mieć PK):

ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;

Powiązane:

  • Jak dodać kolumnę tożsamości PostgreSQL 10 do istniejącej tabeli z wierszami?

Zamień serial z IDENTITY kolumna

Zobacz:

  • Jak zmienić identyfikator tabeli z serialu na tożsamość?

Postgres 9.6 lub starszy

(Lub dowolna wersja, naprawdę.)
Użyj serial zamiast tego pseudotyp danych:

CREATE TABLE staff (
   staff_id serial PRIMARY KEY,
 , staff    text NOT NULL
);

Automatycznie tworzy i dołącza obiekt sekwencji i ustawia DEFAULT do nextval() z sekwencji. Robi wszystko, czego potrzebujesz.

W moim przykładzie użyłem identyfikatorów pisanych małymi literami. Ułatwia Ci życie z Postgresem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT COMMAND ::BŁĄD:wartość kolumny nie istnieje

  2. Laravel:Błąd [PDOException]:Nie można znaleźć sterownika w PostgreSQL

  3. Średnia ruchoma na podstawie znaczników czasu w PostgreSQL

  4. Jak mogę zaimportować plik .sql do mojej bazy danych postgres Heroku?

  5. NULL kontra `nieskończoność` w typach zakresów PostgreSQL