Индексы также могут использоваться для обеспечения уникальности значений столбца или уникальности комбинации значений нескольких столбцов.
CREATE UNIQUE INDEXимяONтаблица(столбец[, ...]) [ NULLS [ NOT ] DISTINCT ];
В настоящее время только индексы B-дерево могут быть объявлены уникальными.
Если индекс объявлен уникальным, наличие нескольких строк таблицы с одинаковыми индексируемыми значениями не допускается. По умолчанию значения null в уникальном столбце не считаются равными, что позволяет хранить в столбце несколько значений null. Параметр
NULLS NOT DISTINCT изменяет это поведение и заставляет индекс считать значения null равными. Уникальный индекс по нескольким столбцам будет отклонять добавление строк только в тех случаях, когда значения всех индексируемых столбцов совпадают в нескольких строках.
Digital Q.DataBase автоматически создает уникальный индекс, когда для таблицы определяется ограничение уникальности или первичный ключ. Индекс охватывает столбцы, составляющие первичный ключ или ограничение уникальности (многоколоночный индекс, если это применимо), и является механизмом, обеспечивающим соблюдение данного ограничения.
Нет необходимости вручную создавать индексы для уникальных столбцов; подобные действия приведут лишь к дублированию автоматически созданного индекса.