Postgres 10 или по-нова версия
serial
колони (вижте по-долу) остават непроменени. Но помислете за IDENTITY
колона. Postgres 10 реализира тази стандартна функция на SQL.
Основен синтаксис и информация в ръководството за CREATE TABLE
.
Подробно обяснение в този блог запис на основния му автор Питър Айзентраут.
Създаване таблица с IDENTITY
колона
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
Добавяне IDENTITY
колона към съществуваща таблица
Таблицата може или не може да бъде попълнена с редове.
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
За да го направите едновременно PK (таблицата все още не може да има PK):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
Свързано:
- Как да добавя колона за идентичност на PostgreSQL 10 към съществуваща таблица с редове?
Замяна serial
с IDENTITY
колона
Вижте:
- Как да промените идентификатора на таблица от сериен на идентичен?
Postgres 9.6 или по-стара версия
(Или каквато и да е версия наистина.)
Използвайте serial
вместо това псевдо тип данни:
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
Той създава и прикачва обекта на последователността автоматично и задава DEFAULT
към nextval()
от последователността. Той прави всичко, от което се нуждаете.
Използвах идентификатори с малки букви в моя пример. Улеснява живота ви с Postgres.