Тем кто переходит на 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;
- У счетчика функционал не ограничивается только увеличением на единицу, у него много возможностей.