3.10. pg_constraint

このシステムカタログはチェック制約、主キー制約、一意性制約、外部キー制約をテーブルに格納します。(列制約は特別扱いされていません。すべての列制約はテーブル制約と同等です。)詳細は CREATE TABLE 以下を参照してください。

Note: NOT NULL 制約については pg_attribute カタログに示されています。

ドメイン上のチェック制約もここに格納されています。 グローバル表明 (現在はサポートされていないSQL機能) も、いずれここに格納される可能性があります。

Table 3-10. pg_constraint の列

名前参照先説明
connamename 制約名(一意である必要はありません)
connamespaceoidpg_namespace.oid この制約を含む名前空間の OID
contypechar  'c' = チェック制約、 'f' = 外部キー制約、 'p' = 主キー制約、 'u' = 一意性制約
condeferrableboolean 制約は DEFERRED 可能(トランザクション終了まで制約のチェックを行わない)かどうか?
condeferredboolean 制約はデフォルトで DEFERRED かどうか?
conrelidoidpg_class.oidこの制約が存在しているテーブルです。テーブル制約でなければ 0 です。
contypidoidpg_type.oidこの制約が存在しているドメインです。ドメイン制約でなければ 0 です。
confrelidoidpg_class.oid外部キーであれば、参照されるテーブルです。そうでなければ 0 です。
confupdtypechar 外部キーの更新アクションコード
confdeltypechar 外部キーの削除アクションコード
confmatchtypechar 外部キーの一致型
conkeyint2[]pg_attribute.attnumテーブル制約であれば、その制約によって制約される列のリスト
confkeyint2[]pg_attribute.attnum外部キーであれば、参照される列のリスト
conbintext チェック制約であれば、式の内部表現形式
consrctext チェック制約であれば、人間が見てわかる形式の式

Note: pg_classrelchecks は、リレーションのテーブルに存在するチェック制約エントリの数と一致する必要があります。