51.13. pg_constraint#
51.13. pg_constraint
Каталог pg_constraint
хранит ограничения проверки, первичного ключа, уникальности, внешнего ключа и исключения на таблицы.
(Ограничения столбцов не обрабатываются особым образом. Каждое ограничение столбца эквивалентно некоторому ограничению таблицы).
Ограничения not-null представлены в каталоге pg_attribute
, а не здесь.
Пользовательские триггеры ограничений (созданные с помощью
CREATE CONSTRAINT TRIGGER
) также приводят к созданию записи в этой таблице.
Здесь также хранятся проверочные ограничения для доменов.
Таблица 51.13. pg_constraint
Столбцы
Тип столбца Описание |
---|
Идентификатор строки |
Имя ограничения (не обязательно уникальное!) |
OID пространства имен, которое содержит это ограничение |
|
Является ли ограничение отложенным? |
Является ли ограничение отложенным по умолчанию? |
Было ли ограничение проверено? В настоящее время может быть ложным только для внешних ключей и ограничений CHECK |
Таблица, на которой находится это ограничение; ноль, если это не ограничение таблицы |
Домен, на котором находится это ограничение; ноль, если это не ограничение домена |
Индекс, поддерживающий это ограничение, если это ограничение уникальности, первичный ключ, внешний ключ или ограничение-исключение; иначе ноль. |
Соответствующее ограничение родительской секционированной таблицы, если это ограничение на раздел; иначе ноль |
Если это внешний ключ, то ссылается на таблицу; иначе ноль |
Foreign key update action code:
|
Foreign key deletion action code:
|
Тип сопоставления внешнего ключа:
|
Это ограничение определено локально для отношения. Обратите внимание, что ограничение может быть определено локально и одновременно унаследовано. |
Количество непосредственных предков-наследников этого ограничения. Ограничение с ненулевым количеством предков не может быть удалено или переименовано. |
Это ограничение определено локально для отношения. Оно является неунаследуемым ограничением. |
Если ограничение таблицы (включая внешние ключи, но не триггеры ограничений), список ограниченных столбцов |
Если это внешний ключ, список целевых столбцов |
Если это внешний ключ, список операторов равенства для сравнения PK = FK |
Если внешний ключ, список операторов равенства для сравнения PK = PK |
Если внешний ключ, список операторов равенства для сравнения FK = FK |
Если внешний ключ имеет действие удаления |
Если это ограничение исключения, перечислите операторы исключения для каждого столбца |
Если это проверочное ограничение, внутреннее представление выражения. (Рекомендуется использовать |
В случае ограничения-исключения, conkey
полезен только для элементов ограничения, которые являются простыми ссылками на столбцы. В других случаях в conkey
появляется ноль, и для определения выражения, на которое наложено ограничение, необходимо обратиться к соответствующему индексу. (conkey
таким образом имеет тот же содержимое, что и pg_index
.indkey
для индекса).
Примечание
pg_class.relchecks
должно совпадать с количеством записей о проверочных ограничениях, найденных в этой таблице для каждого отношения.