このシステムカタログはチェック制約、主キー制約、一意性制約、外部キー制約をテーブルに格納します。(列制約は特別扱いされていません。すべての列制約はテーブル制約と同等です。)詳細は CREATE TABLE 以下を参照してください。
Note: NOT NULL 制約については pg_attribute カタログに示されています。
ドメイン上のチェック制約もここに格納されています。 グローバル表明 (現在はサポートされていないSQL機能) も、いずれここに格納される可能性があります。
Table 3-10. pg_constraint の列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
conname | name | 制約名(一意である必要はありません) | |
connamespace | oid | pg_namespace.oid | この制約を含む名前空間の OID |
contype | char | 'c' = チェック制約、 'f' = 外部キー制約、 'p' = 主キー制約、 'u' = 一意性制約 | |
condeferrable | boolean | 制約は DEFERRED 可能(トランザクション終了まで制約のチェックを行わない)かどうか? | |
condeferred | boolean | 制約はデフォルトで DEFERRED かどうか? | |
conrelid | oid | pg_class.oid | この制約が存在しているテーブルです。テーブル制約でなければ 0 です。 |
contypid | oid | pg_type.oid | この制約が存在しているドメインです。ドメイン制約でなければ 0 です。 |
confrelid | oid | pg_class.oid | 外部キーであれば、参照されるテーブルです。そうでなければ 0 です。 |
confupdtype | char | 外部キーの更新アクションコード | |
confdeltype | char | 外部キーの削除アクションコード | |
confmatchtype | char | 外部キーの一致型 | |
conkey | int2[] | pg_attribute.attnum | テーブル制約であれば、その制約によって制約される列のリスト |
confkey | int2[] | pg_attribute.attnum | 外部キーであれば、参照される列のリスト |
conbin | text | チェック制約であれば、式の内部表現形式 | |
consrc | text | チェック制約であれば、人間が見てわかる形式の式 |
Note: pg_class の relchecks は、リレーションのテーブルに存在するチェック制約エントリの数と一致する必要があります。