11.6. Уникальные индексы#

11.6. Уникальные индексы

11.6. Уникальные индексы

Индексы также могут использоваться для обеспечения уникальности значения столбца или уникальности комбинированных значений более чем одного столбца.

CREATE UNIQUE INDEX name ON table (column [, ...]) [NULLS [ NOT ] DISTINCT];

В настоящее время только индексы B-дерева могут быть объявлены уникальными.

Когда индекс объявлен уникальным, не допускается наличие нескольких строк таблицы с одинаковыми индексированными значениями. По умолчанию, null значения в уникальной колонке не считаются равными, что позволяет иметь несколько null в колонке. Опция NULLS NOT DISTINCT изменяет это и заставляет индекс рассматривать null как равные. Уникальный индекс из нескольких столбцов будет отклонять только те случаи, когда все индексированные столбцы равны в нескольких строках.

Tantor SE автоматически создает уникальный индекс, когда для таблицы определено уникальное ограничение или первичный ключ. Индекс охватывает столбцы, составляющие первичный ключ или уникальное ограничение (мультиколоночный индекс, если это уместно), и является механизмом, который обеспечивает соблюдение ограничения.

Примечание

Не нужно создавать индексы на уникальных столбцах вручную; это просто дублирование автоматически созданного индекса.