pg_constraint
#
The catalog <structname>pg_constraint</structname> stores check, primary
key, unique, foreign key, and exclusion constraints on tables, as well as
not-null constraints on domains.
(Column constraints are not treated specially. Every column constraint is
equivalent to some table constraint.)
Not-null constraints on relations are represented in the
<link linkend="catalog-pg-attribute"><structname>pg_attribute</structname></link>
catalog, not here.
pg_constraint
カタログはテーブル上の検査制約、主キー制約、一意性制約、外部キー制約、排他制約、およびドメインの非NULL制約を格納します。
(列制約は特別扱いされていません。
全ての列制約は何らかのテーブル制約と同等です。)
リレーションの非NULL制約はここではなく、pg_attribute
カタログで示されます。
User-defined constraint triggers (created with <link linkend="sql-createtrigger">
<command>CREATE CONSTRAINT TRIGGER</command></link>) also give rise to an entry in this table.
(CREATE CONSTRAINT TRIGGER
で作成される)ユーザ定義の制約トリガもこのテーブルの項目の元になります。
Check constraints on domains are stored here, too. ドメイン上の検査制約もここに格納されます。
表51.13 pg_constraint
の列
Column Type 列 型 Description 説明 |
---|
Row identifier 行識別子 |
Constraint name (not necessarily unique!) 制約名(一意である必要はありません!) |
The OID of the namespace that contains this constraint この制約を含む名前空間のOID |
<literal>c</literal> = check constraint,
<literal>f</literal> = foreign key constraint,
<literal>n</literal> = not-null constraint (domains only),
<literal>p</literal> = primary key constraint,
<literal>u</literal> = unique constraint,
<literal>t</literal> = constraint trigger,
<literal>x</literal> = exclusion constraint
|
Is the constraint deferrable? 制約は遅延可能かどうか? |
Is the constraint deferred by default? 制約はデフォルトで遅延可能かどうか? |
Has the constraint been validated? Currently, can be false only for foreign keys and CHECK constraints 制約が検証されているか? 現時点では外部キーとチェック制約の場合のみfalseになる可能性があります |
The table this constraint is on; zero if not a table constraint この制約が存在しているテーブル。 テーブル制約でなければゼロ |
The domain this constraint is on; zero if not a domain constraint この制約が存在しているドメイン。 ドメイン制約でなければゼロ |
The index supporting this constraint, if it's a unique, primary key, foreign key, or exclusion constraint; else zero 一意性制約、主キー制約、外部キー制約、排他制約の場合、この制約をサポートするインデックス。 そうでなければゼロ |
The corresponding constraint of the parent partitioned table, if this is a constraint on a partition; else zero パーティション内の制約なら、親パーティションテーブルの該当制約。 そうでなければゼロ |
If a foreign key, the referenced table; else zero 外部キーであれば、参照されるテーブル。 そうでなければゼロ |
Foreign key update action code:
<literal>a</literal> = no action,
<literal>r</literal> = restrict,
<literal>c</literal> = cascade,
<literal>n</literal> = set null,
<literal>d</literal> = set default
外部キー更新アクションコード:
|
Foreign key deletion action code:
<literal>a</literal> = no action,
<literal>r</literal> = restrict,
<literal>c</literal> = cascade,
<literal>n</literal> = set null,
<literal>d</literal> = set default
外部キー削除アクションコード:
|
Foreign key match type:
<literal>f</literal> = full,
<literal>p</literal> = partial,
<literal>s</literal> = simple
外部キーの一致型:
|
This constraint is defined locally for the relation. Note that a constraint can be locally defined and inherited simultaneously. この制約はリレーションでローカルに定義されています。制約はローカルに定義されていて同時に継承されます。 |
The number of direct inheritance ancestors this constraint has. A constraint with a nonzero number of ancestors cannot be dropped nor renamed. この制約がもつ直系の先祖の数。 先祖の数がゼロではない制約は削除や改名はできません。 |
This constraint is defined locally for the relation. It is a non-inheritable constraint. この制約はリレーションのためにローカルで定義されます。これは非継承制約です。 |
If a table constraint (including foreign keys, but not constraint triggers), list of the constrained columns テーブル制約(外部キーを含みますが制約トリガは含みません)であれば、その制約によって制約される列のリスト |
If a foreign key, list of the referenced columns 外部キーであれば、参照される列のリスト |
If a foreign key, list of the equality operators for PK = FK comparisons 外部キーであれば、PK = FKの比較のための同値演算子のリスト |
If a foreign key, list of the equality operators for PK = PK comparisons 外部キーであれば、PK = PKの比較のための同値演算子のリスト |
If a foreign key, list of the equality operators for FK = FK comparisons 外部キーであれば、FK = FKの比較のための同値演算子のリスト |
If a foreign key with a <literal>SET NULL</literal> or <literal>SET
DEFAULT</literal> delete action, the columns that will be updated.
If null, all of the referencing columns will be updated.
外部キーに |
If an exclusion constraint, list of the per-column exclusion operators 排他制約の場合、列単位の排他演算子のリスト |
If a check constraint, an internal representation of the
expression. (It's recommended to use
<function>pg_get_constraintdef()</function> to extract the definition of
a check constraint.)
チェック制約なら式の内部表現。( |
In the case of an exclusion constraint, <structfield>conkey</structfield>
is only useful for constraint elements that are simple column references.
For other cases, a zero appears in <structfield>conkey</structfield>
and the associated index must be consulted to discover the expression
that is constrained. (<structfield>conkey</structfield> thus has the
same contents as <link linkend="catalog-pg-index"><structname>pg_index</structname></link>.<structfield>indkey</structfield> for the
index.)
排他制約の場合、単純な列参照である制約要素でのみconkey
が有用です。
その他の場合、conkey
はゼロであり、関連するインデックスは制約される式を調査して見つけなければなりません。
(したがってインデックスではconkey
はpg_index
.indkey
の内容と同じものを持ちます。)
<literal>pg_class.relchecks</literal> needs to agree with the
number of check-constraint entries found in this table for each
relation.
pg_class.relchecks
はそれぞれのリレーションに対してこのテーブルで検出された検査制約の項目数と一致しなければなりません。