11.6. Уникальные индексы
Индексы также могут обеспечивать уникальность значения в столбце или уникальность сочетания значений в нескольких столбцах.
CREATE UNIQUE INDEXимя
ONтаблица
(столбец
[, ...]);
В настоящее время уникальными могут быть только индексы-B-деревья.
Если индекс создаётся как уникальный, в таблицу нельзя будет добавить несколько строк с одинаковыми значениями ключа индекса. При этом значения NULL считаются не равными друг другу. Составной уникальный индекс не принимает только те строки, в которых все индексируемые столбцы содержат одинаковые значения.
Когда для таблицы определяется ограничение уникальности или первичный ключ, PostgreSQL автоматически создаёт уникальный индекс по всем столбцам, составляющим это ограничение или первичный ключ (индекс может быть составным). Такой индекс и является механизмом, который обеспечивает выполнение ограничения.
Примечание
Для уникальных столбцов не нужно вручную создавать отдельные индексы — они просто продублируют индексы, созданные автоматически.
34.9. check_constraints
The view check_constraints
contains all check constraints, either defined on a table or on a domain, that are owned by a currently enabled role. (The owner of the table or domain is the owner of the constraint.)
Table 34.7. check_constraints
Columns
Name | Data Type | Description |
---|---|---|
constraint_catalog | sql_identifier | Name of the database containing the constraint (always the current database) |
constraint_schema | sql_identifier | Name of the schema containing the constraint |
constraint_name | sql_identifier | Name of the constraint |
check_clause | character_data | The check expression of the check constraint |