34.31. key_column_usage

Представление key_column_usage описывает все столбцы в текущей базе, с которыми связано какое-либо ограничение уникальности, либо ограничение первичного или внешнего ключа. Ограничения-проверки в этом представлении не показываются. В нём показываются только те столбцы, к которым имеет доступ текущий пользователь (являясь владельцем или имея некоторые права).

Таблица 34.29. Столбцы key_column_usage

ИмяТип данныхОписание
constraint_catalogsql_identifierИмя базы данных, содержащей ограничение (всегда текущая база)
constraint_schemasql_identifierИмя схемы, содержащей ограничение
constraint_namesql_identifierИмя ограничения
table_catalogsql_identifierИмя базы данных, содержащей таблицу со столбцом, подчиняющимся этому ограничению (всегда текущая база)
table_schemasql_identifierИмя схемы, содержащей таблицу со столбцом, подчиняющимся этому ограничению
table_namesql_identifierИмя таблицы со столбцом, подчиняющимся этому ограничению
column_namesql_identifierИмя столбца, подчиняющегося этому ограничению
ordinal_positioncardinal_numberПорядковый номер столбца в ключе ограничения (нумерация начинается с 1)
position_in_unique_constraintcardinal_numberДля ограничения внешнего ключа это порядковый номер целевого столбца в его ограничении уникальности (нумерация начинается с 1); в противном случае NULL

11.6. Unique Indexes

Indexes can also be used to enforce uniqueness of a column's value, or the uniqueness of the combined values of more than one column.

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

Currently, only B-tree indexes can be declared unique.

When an index is declared unique, multiple table rows with equal indexed values are not allowed. Null values are not considered equal. A multicolumn unique index will only reject cases where all indexed columns are equal in multiple rows.

PostgreSQL automatically creates a unique index when a unique constraint or primary key is defined for a table. The index covers the columns that make up the primary key or unique constraint (a multicolumn index, if appropriate), and is the mechanism that enforces the constraint.

Note

There's no need to manually create indexes on unique columns; doing so would just duplicate the automatically-created index.