Уникальные значения в 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. В таблице можно определить не более одного такого столбца.


Комментарии запрещены.




Статистика