52.13. pg_constraint

В каталоге pg_constraint хранятся ограничения-проверки, ограничения-исключения, а также ограничения первичного ключа, уникальности и внешних ключей, определённые для таблиц. (Ограничения столбцов описываются как и все остальные. Любое ограничение столбца равнозначно некоторому ограничению таблицы.) Ограничения на NULL представляются не здесь, а в каталоге pg_attribute.

Для пользовательских триггеров ограничений (создаваемых командой CREATE CONSTRAINT TRIGGER) в этой таблице также создаётся запись.

Здесь также хранятся ограничения доменов.

Таблица 52.13. Столбцы pg_constraint

Тип столбца

Описание

oid oid

Идентификатор строки

conname name

Имя ограничения (не обязательно уникальное!)

connamespace oid (ссылается на pg_namespace.oid)

OID пространства имён, содержащего это ограничение

contype char

c = ограничение-проверка (check), f = внешний ключ (foreign key), p = первичный ключ (primary key), u = ограничение уникальности (unique), t = триггер ограничения (trigger), x = ограничение-исключение (exclusion)

condeferrable bool

Является ли ограничение откладываемым?

condeferred bool

Является ли ограничение отложенным по умолчанию?

convalidated bool

Было ли ограничение проверено? В настоящее время значение false возможно только для внешних ключей и ограничений CHECK

conrelid oid (ссылается на pg_class.oid)

Таблица, для которой установлено это ограничение; ноль, если это не ограничение таблицы

contypid oid (ссылается на pg_type.oid)

Домен, к которому относится это ограничение; ноль, если это не ограничение домена

conindid oid (ссылается на pg_class.oid)

Индекс, поддерживающий это ограничение, если это ограничение уникальности, первичного или внешнего ключа, либо ограничение-исключение; в противном случае — ноль

conparentid oid (ссылается на pg_constraint.oid)

Соответствующее ограничение в родительской секционированной таблице, если это ограничение в секции; иначе ноль

confrelid oid (ссылается на pg_class.oid)

Если это внешний ключ, таблица, на которую он ссылается; иначе ноль

confupdtype char

Код действия при изменении внешнего ключа: a = нет действия, r = ограничить (restrict), c = каскадное действие (cascade), n = присвоить NULL, d = поведение по умолчанию

confdeltype char

Код действия при удалении внешнего ключа: a = нет действия, r = ограничить (restrict), c = каскадное действие (cascade), n = присвоить NULL, d = поведение по умолчанию

confmatchtype char

Тип сопоставления внешнего ключа: f = полное (full), p = частичное (partial), s = простое (simple)

conislocal bool

Ограничение определено локально в данном отношении. Заметьте, что ограничение может быть определено локально и при этом наследоваться.

coninhcount int4

Число прямых предков этого ограничения. Ограничение с ненулевым числом предков нельзя удалить или переименовать.

connoinherit bool

Ограничение определено локально для данного отношения и является ненаследуемым.

conkey int2[] (ссылается на pg_attribute.attnum)

Для ограничений таблицы (включая внешние ключи, но не триггеры ограничений), определяет список столбцов, образующих ограничение

confkey int2[] (ссылается на pg_attribute.attnum)

Для внешнего ключа определяет список столбцов, на которые он ссылается

conpfeqop oid[] (ссылается на pg_operator.oid)

Для внешнего ключа — список операторов равенства для сравнений PK = FK

conppeqop oid[] (ссылается на pg_operator.oid)

Для внешнего ключа — список операторов равенства для сравнений PK = PK

conffeqop oid[] (ссылается на pg_operator.oid)

Для внешнего ключа — список операторов равенства для сравнений FK = FK

confdelsetcols int2[] (ссылается на pg_attribute.attnum)

Для внешнего ключа с указанием SET NULL или SET DEFAULT при удалении — список изменяемых столбцов. Значение NULL показывает, что изменены будут все столбцы, на которые ссылается ключ.

conexclop oid[] (ссылается на pg_operator.oid)

Для ограничения-исключения — список операторов исключения по столбцам

conbin pg_node_tree

Для ограничения-проверки — внутреннее представление выражения. (Чтобы извлечь определение ограничения-проверки, рекомендуется использовать pg_get_constraintdef().)


В случае с ограничением-исключением значение conkey полезно только для элементов ограничений, представляющих простые ссылки на столбцы. Для других случаев в conkey задаётся ноль, и чтобы получить выражение, определяющее ограничение, надо обратиться к соответствующему индексу. (Таким образом, поле conkey имеет то же содержимое, что и pg_index.indkey для индекса.)

Примечание

Поле pg_class.relchecks должно согласовываться с числом ограничений-проверок, описанных в данной таблице для каждого отношения.

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy