Тем кто переходит на PostgreSQL с MySQL, наверное будет удивительно узнать что специального свойства у поля auto_increment в новой СУБД нету. Заменой автоинкрементов в PostgreSQL являются такие штуки как Sequences (счетчики).
Работают они так:
-- Создание счетчика
CREATE SEQUENCE auto_id_users;
-- Создание таблицы
CREATE TABLE users
(
"id" integer NOT NULL DEFAULT nextval('auto_id_users'),
"name" text
)
То есть счетчик взаимодействует с полем id через свойство DEFAULT в которой прописывается nextval от счетчика.
У этого подхода есть ряд несомненных плюсов:
- можно очень быстро узнать значение счетчика, без нагрузки к БД и обращению к таблицам. SELECT last_value from auto_id_users;
- У счетчика функционал не ограничивается только увеличением на единицу, у него много возможностей.