TABLE_CONSTRAINTS 檢視
TABLE_CONSTRAINTS
檢視包含 BigQuery 資料集中的主鍵和外鍵關聯。
所需權限
您必須具備下列 身分與存取權管理 (IAM) 權限:
bigquery.tables.get
,查看主鍵和外鍵定義。bigquery.tables.list
:查看資料表資訊結構定義。
下列每個預先定義的角色都具備執行本文所述工作流程所需的權限:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
如要進一步瞭解 BigQuery 中的 IAM 角色和權限,請參閱「預先定義的角色與權限」一文。
結構定義
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
檢視表具有下列結構定義:
資料欄名稱 | 類型 | 意義 |
---|---|---|
|
|
限制專案名稱。 |
|
|
限制資料集名稱。 |
|
|
限制名稱。 |
|
|
受限資料表專案名稱。 |
|
|
受限資料表資料集名稱。 |
|
|
受限的資料表名稱。 |
|
|
PRIMARY KEY 或 FOREIGN KEY 。 |
|
|
YES 或 NO ,視限制是否可延後而定。系統僅支援 NO 。 |
|
|
系統僅支援 NO 。 |
|
|
YES 或 NO ,視限制是否已強制執行而定。僅支援 NO 。 |
範圍和語法
對這個檢視表執行的查詢必須包含資料集限定詞。如果查詢含有資料集限定詞,您必須具備資料集的權限。詳情請參閱「語法」。下表列出這個檢視畫面的區域和資源範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[PROJECT_ID.]DATASET.INFORMATION_SCHEMA.TABLE_CONSTRAINTS; |
資料集層級 | 資料集位置 |
-
選用:
PROJECT_ID
: Google Cloud 專案的 ID。如果未指定,系統會使用預設專案。
範例
以下查詢會顯示資料集中單一資料表的限制:
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE table_name = TABLE;
更改下列內容:
PROJECT_ID
:選用。雲端專案的名稱。如果未指定,這個指令會使用預設專案。DATASET
:資料集名稱。TABLE
:資料表名稱。
相反地,下列查詢會顯示單一資料集中所有資料表的限制條件。
SELECT * FROM PROJECT_ID.DATASET.INFORMATION_SCHEMA.TABLE_CONSTRAINTS;
在使用現有限制的情況下,查詢結果會類似下列內容:
+-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+ | Row | constraint_catalog | constraint_schema | constraint_name | table_catalog | table_schema | table_name | constraint_type | is_deferrable | initially_deferred | enforced | +-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+ | 1 | myConstraintCatalog | myDataset | orders.pk$ | myConstraintCatalog | myDataset | orders | PRIMARY KEY | NO | NO | NO | | 2 | myConstraintCatalog | myDataset | orders.order_customer | myConstraintCatalog | myDataset | orders | FOREIGN KEY | NO | NO | NO | +-----+---------------------+-------------------+-----------------------+---------------------+--------------+------------+-----------------+---------------+--------------------+----------+
如果資料表或資料集沒有限制條件,查詢結果會如下所示:
+-----------------------------+ | There is no data to display | +-----------------------------+