CONSTRAINT_COLUMN_USAGE 视图
CONSTRAINT_COLUMN_USAGE
视图包含限制条件使用的所有列。对于 PRIMARY KEY
限制条件,这些是 KEY_COLUMN_USAGE
视图中的列。对于 FOREIGN KEY
限制条件,这些是被引用表的列。
架构
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
视图具有如下架构:
列名称 | 数据类型 | 值 |
---|---|---|
|
|
包含数据集的项目的名称。 |
|
|
包含表的数据集的名称,也称为 datasetId 。 |
|
|
表的名称,也称为 tableId 。 |
|
|
列名称。 |
|
|
限制条件项目名称。 |
|
|
限制条件数据集名称。 |
|
|
限制条件名称。如果列由主键使用,则为主键的名称;如果列由外键使用,则为外键的名称。 |
范围和语法
针对此视图的查询必须包括数据集限定符。对于包含数据集限定符的查询,您必须拥有数据集的权限。如需了解详情,请参阅语法。下表展示了此视图的区域和资源范围:
视图名称 | 资源范围 | 区域范围 |
---|---|---|
[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
:可选。您的 Cloud 项目的名称。如果未指定,则此命令会使用默认项目。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 | +-----------------------------+