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 |
    +-----------------------------+