TABLE_CONSTRAINTS 뷰
TABLE_CONSTRAINTS
뷰는 BigQuery 데이터 세트의 기본 키 및 외래 키 관계를 포함합니다.
필수 권한
다음 Identity and Access Management(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 | +-----------------------------+