В Глава 20, Множественные таблицы было обещано, что имеются специальные
средства для работы с персональными номерами. Поскольку такие номера могут
идентифицировать не только людей, но и объекты других видов, их обычно называют
идентификационными. Традиционное имя поля в таблице, которое содержит такой
номер — id. В PostgreSQL имеется особый
тип для таких номеров — SERIAL. В основе
этого типа лежит тип INTEGER, однако
значением по умолчанию для величин этого типа является не
NULL
, а следующее целое число. Таким образом, если добавлять
записи в таблицу, не указывая для полей типа SERIAL, эти значения будут присваиваться автоматически
как порядковые целые числа. На значения типа SERIAL накладывается ещё одно ограничение — они не
могут быть NULL
.
Тип SERIAL в PostgreSQL реализуется с помощью специального механизма — последовательностей. Для каждого поля этого типа создаётся таблица, которая содержит, помимо прочего, текущее число из последовательности. При извлечении очередного номера из последовательности текущее число увеличивается.