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