REFERENTIAL_CONSTRAINTS ビュー¶
このInformation Schemaには、指定された(または現在の)データベースにある各 FOREIGN KEY の行が表示されます。
FOREIGN KEY 制約は参照整合性を強制するために使用されます。詳細については、 制約 および 参照整合性制約 をご参照ください。
(FOREIGN KEY 制約と同様に)他の制約タイプに関する情報を返すには、 TABLE_CONSTRAINTS ビュー をクエリします。
- こちらもご参照ください。
列¶
列名 |
データ型 |
説明 |
---|---|---|
CONSTRAINT_CATALOG |
TEXT |
制約が属するデータベース |
CONSTRAINT_SCHEMA |
TEXT |
制約が属するスキーマ |
CONSTRAINT_NAME |
TEXT |
制約の名前 |
UNIQUE_CONSTRAINT_CATALOG |
TEXT |
現在の制約によって参照される一意の制約のデータベース |
UNIQUE_CONSTRAINT_SCHEMA |
TEXT |
現在の制約によって参照される一意の制約のスキーマ |
UNIQUE_CONSTRAINT_NAME |
TEXT |
現在の制約によって参照される一意の制約の名前 |
MATCH_OPTION |
TEXT |
制約の一致オプション |
UPDATE_RULE |
TEXT |
現在の制約のルールを更新 |
DELETE_RULE |
TEXT |
現在の制約のルールを削除 |
COMMENT |
TEXT |
この制約に対するコメント |
CREATED |
TIMESTAMP_LTZ |
制約の作成時刻 |
LAST_ALTERED |
TIMESTAMP_LTZ |
オブジェクトが DML、 DDL、 またはバックグラウンドでのメタデータ処理によって最後に変更された日時。 使用上の注意 をご参照ください。 |
使用上の注意¶
ビューには、セッションの現在のロールにアクセス権が付与されているオブジェクトのみが表示されます。
LAST_ALTERED 列は、オブジェクトに対して以下の操作を実行したときに更新されます。
DDL 操作 。
DML 操作(テーブル用のみ)。この列は、 DML ステートメントによって影響を受ける行がない場合でも更新されます。
Snowflakeが実行するメタデータのバックグラウンド保守作業。
例¶
現在のデータベース内のすべての FOREIGN KEY 制約に関する情報を返します。
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
+--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | UNIQUE_CONSTRAINT_CATALOG | UNIQUE_CONSTRAINT_SCHEMA | UNIQUE_CONSTRAINT_NAME | MATCH_OPTION | UPDATE_RULE | DELETE_RULE | COMMENT | CREATED | LAST_ALTERED |
|--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------|
| HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_51118aaf-1ee6-4548-bc9a-f87e65d92528 | HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_aad16788-491a-4e68-b0e3-30d48a33a1c1 | FULL | NO ACTION | NO ACTION | NULL | 2024-09-19 13:51:37.355 -0700 | 2024-09-19 13:51:37.608 -0700 |
| HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_c97bfe9b-6098-4b8a-b796-e341071db72a | HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_0bd41d0f-11f7-4366-82a3-f03f31fcce7e | FULL | NO ACTION | NO ACTION | NULL | 2024-05-28 18:21:43.899 -0700 | 2024-05-28 18:21:44.268 -0700 |
+--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------+
このビューを TABLE_CONSTRAINTS ビュー に結合して、 FOREIGN KEY 制約を持つ参照テーブルの名前を取得します:
SELECT tc.constraint_catalog, tc.constraint_schema, tc.constraint_name, tc.table_name, tc.constraint_type, tc.enforced
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc ON tc.constraint_name=rc.constraint_name;
+--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | TABLE_NAME | CONSTRAINT_TYPE | ENFORCED |
|--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------|
| HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_51118aaf-1ee6-4548-bc9a-f87e65d92528 | HTFK | FOREIGN KEY | YES |
| HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_c97bfe9b-6098-4b8a-b796-e341071db72a | HT619 | FOREIGN KEY | YES |
+--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------+