REFERENTIAL_CONSTRAINTS 뷰¶
이 Information Schema 뷰는 지정된(또는 현재) 데이터베이스의 테이블에 대해 정의된 각 FOREIGN KEY 제약 조건에 대한 행을 표시합니다.
FOREIGN KEY 제약 조건은 참조 무결성을 적용하는 데 사용됩니다. 자세한 내용은 제약 조건 및 참조 무결성 제약 조건 섹션을 참조하십시오.
(FOREIGN KEY 제약 조건뿐 아니라) 다른 제약 조건 유형에 대한 정보를 반환하려면 TABLE_CONSTRAINTS 뷰 를 쿼리합니다.
- 참고 항목:
열¶
열 이름 |
데이터 타입 |
설명 |
---|---|---|
CONSTRAINT_CATALOG |
TEXT |
제약 조건이 속한 데이터베이스 |
CONSTRAINT_SCHEMA |
TEXT |
제약 조건이 속한 스키마 |
CONSTRAINT_NAME |
TEXT |
제약 조건의 이름 |
UNIQUE_CONSTRAINT_CATALOG |
TEXT |
현재 제약 조건이 참조하는 고유 제약 조건의 데이터베이스 |
UNIQUE_CONSTRAINT_SCHEMA |
TEXT |
현재 제약 조건이 참조하는 고유 제약 조건의 스키마 |
UNIQUE_CONSTRAINT_NAME |
TEXT |
현재 제약 조건이 참조하는 고유 제약 조건의 이름 |
MATCH_OPTION |
TEXT |
제약 조건에 대한 일치 옵션 |
UPDATE_RULE |
TEXT |
현재 제약 조건에 대한 업데이트 규칙 |
DELETE_RULE |
TEXT |
현재 제약 조건에 대한 삭제 규칙 |
COMMENT |
TEXT |
이 제약 조건에 대한 설명 |
CREATED |
TIMESTAMP_LTZ |
제약 조건의 생성 시간 |
LAST_ALTERED |
TIMESTAMP_LTZ |
DML, DDL 또는 백그라운드 메타데이터 작업으로 오브젝트가 마지막으로 변경된 날짜 및 시간입니다. 사용법 노트 를 참조하십시오. |
사용법 노트¶
뷰에는 세션의 현재 역할에 액세스 권한이 부여된 오브젝트만 표시됩니다.
오브젝트에 대해 다음 작업이 수행되면 LAST_ALTERED 열이 업데이트됩니다.
DDL 작업.
DML 작업(테이블에만 해당). DML 문의 영향을 받는 행이 없어도 이 열은 업데이트됩니다.
Snowflake에서 수행되는 메타데이터에 대한 백그라운드 유지 관리 작업.
예¶
현재 데이터베이스의 모든 FOREIGN KEY 제약 조건에 대한 정보를 반환합니다.
SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS;
+--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | UNIQUE_CONSTRAINT_CATALOG | UNIQUE_CONSTRAINT_SCHEMA | UNIQUE_CONSTRAINT_NAME | MATCH_OPTION | UPDATE_RULE | DELETE_RULE | COMMENT | CREATED | LAST_ALTERED |
|--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------|
| HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_51118aaf-1ee6-4548-bc9a-f87e65d92528 | HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_aad16788-491a-4e68-b0e3-30d48a33a1c1 | FULL | NO ACTION | NO ACTION | NULL | 2024-09-19 13:51:37.355 -0700 | 2024-09-19 13:51:37.608 -0700 |
| HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_c97bfe9b-6098-4b8a-b796-e341071db72a | HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_0bd41d0f-11f7-4366-82a3-f03f31fcce7e | FULL | NO ACTION | NO ACTION | NULL | 2024-05-28 18:21:43.899 -0700 | 2024-05-28 18:21:44.268 -0700 |
+--------------------+-------------------+-----------------------------------------------------+---------------------------+--------------------------+-----------------------------------------------------+--------------+-------------+-------------+---------+-------------------------------+-------------------------------+
이 뷰를 TABLE_CONSTRAINTS 뷰 에 조인하여 FOREIGN KEY 제약 조건이 있는 참조 테이블의 이름을 가져옵니다.
SELECT tc.constraint_catalog, tc.constraint_schema, tc.constraint_name, tc.table_name, tc.constraint_type, tc.enforced
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
JOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc ON tc.constraint_name=rc.constraint_name;
+--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------+
| CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | TABLE_NAME | CONSTRAINT_TYPE | ENFORCED |
|--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------|
| HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_51118aaf-1ee6-4548-bc9a-f87e65d92528 | HTFK | FOREIGN KEY | YES |
| HTABLES_DB | HTABLES_SCHEMA | SYS_CONSTRAINT_c97bfe9b-6098-4b8a-b796-e341071db72a | HT619 | FOREIGN KEY | YES |
+--------------------+-------------------+-----------------------------------------------------+------------+-----------------+----------+