Уникальные значения в SQL
Для уникальной идентификации записей таблицы в современных СУБД имеют специальные встроенные средства.
Как и в desktop СУБД используются автоинкрементные поля.
Однако есть и специальные операторы.
1) Последовательности значений
CREATE SEQUENCE <имя последовательности>
AS <тип данных> START WITH <число>
INCREMENT BY <число>
[MAXVALUE <число>|NO MAXVALUE]
[MINVALUE <число>|NO MINVALUE]
[[NO] CYCLE]
Для получения следующего значения последовательности предусмотрен оператор:
NEXT VALUE FOR <имя последовательности>
2) Идентифицирующие столбцы
<имя колонки> <тип данных> GENERATED {ALWAYS|BY DEFAULT} AS IDENTITY
([START WITH <число>] [INCREMENT BY <число>]
[MAXVALUE <число>] [MINVALUE <число>]
[[NO] CYCLE])
Пример:
ONum Integer GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 10000 NO CYCLE)
Определение идентифицирующего столбца неявно накладывает на него ограничения NOT NULL NOT DEFERRABLE. В таблице можно определить не более одного такого столбца.