CONSTRAINT_COLUMN_USAGE ビュー

CONSTRAINT_COLUMN_USAGE ビューには、制約で使用されるすべての列が含まれます。PRIMARY KEY の制約の場合、これらは KEY_COLUMN_USAGE ビューの列です。FOREIGN KEY の制約の場合、これらは参照されるテーブルの列です。

スキーマ

INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ビューのスキーマは次のとおりです。

列名 データ型

TABLE_CATALOG

STRING

データセットを含むプロジェクトの名前。

TABLE_SCHEMA

STRING

datasetId とも呼ばれる、テーブルを含むデータセットの名前。

TABLE_NAME

STRING

tableId とも呼ばれる、テーブルの名前。

COLUMN_NAME

STRING

列の名前。

CONSTRAINT_CATALOG

STRING

制約プロジェクト名。

CONSTRAINT_SCHEMA

STRING

制約データセット名。

CONSTRAINT_NAME

STRING

制約名。列が主キーで使用されている場合は主キーの名前に、列が外部キーで使用されている場合は外部キーの名前になります。

スコープと構文

このビューに対するクエリでは、データセット修飾子を指定する必要があります。データセット修飾子が指定されたクエリの場合は、データセットに対する権限が必要です。詳細については、構文をご覧ください。次の表に、このビューのリージョン スコープとリソース スコープを示します。

ビュー名 リソース スコープ リージョン スコープ
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; データセット レベル データセットのロケーション
次のように置き換えます。

  • 省略可: PROJECT_ID: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。

次のクエリは、データセット内の単一テーブルの制約を示します。

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
WHERE table_name = TABLE;

次のように置き換えます。

  • PROJECT_ID: 省略可。クラウド プロジェクトの名前。指定しない場合、このコマンドではデフォルトのプロジェクトが使用されます。
  • DATASET: データセット名。
  • TABLE: テーブルの名前。

次のクエリは逆に、単一データセット内のすべてのテーブルの制約を示します。

SELECT *
FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE;

既存の制約を使用すると、クエリ結果は次のようになります。

+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
| row |    table_catalog    | table_schema | table_name | column_name | constraint_catalog  | constraint_schema |     constraint_name     |
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+
|   1 | myConstraintCatalog | myDataset    | orders     | o_okey      | myConstraintCatalog | myDataset         | orders.pk$              |
|   2 | myConstraintCatalog | myDataset    | orders     | o_okey      | myConstraintCatalog | myDataset         | lineitem.lineitem_order |
+-----+---------------------+--------------+------------+-------------+---------------------+-------------------+-------------------------+

テーブルまたはデータセットに制約がない場合、クエリ結果は次のようになります。

+-----------------------------+
| There is no data to display |
+-----------------------------+