제약 조건의 개요

Snowflake는 다음과 같은 제약 조건 기능을 제공합니다.

  • 고유, 기본 및 외래 키와 NOT NULL 열.

  • 명명된 제약 조건.

  • 단일 열 및 다중 열 제약 조건.

  • 인라인 및 아웃오브 라인으로 제약 조건 만들기.

  • 제약 조건 만들기, 수정, 삭제 지원.

이 항목의 내용:

지원되는 제약 조건 유형

Snowflake는 ANSI SQL 표준에서 다음과 같은 제약 조건 유형을 지원합니다.

  • UNIQUE

  • PRIMARY KEY

  • FOREIGN KEY

  • NOT NULL

테이블에는 여러 개의 고유 키와 외래 키가 있을 수 있지만, 기본 키는 하나만 있을 수 있습니다. 모든 외래 키는 외래 키에 있는 각 열의 열 유형과 일치하는 해당 기본 키나 고유 키를 참조해야 합니다. 외래 키의 기본 키는 외래 키와 다른 테이블이나 같은 테이블에 있을 수 있습니다.

참고

Snowflake는 제약 조건의 정의와 유지 관리를 지원하지만, 항상 강제 적용되는 NOT NULL 제약 조건을 제외하면 이러한 제약 조건을 강제로 적용하지는 않습니다.

테이블 제약 조건

Snowflake는 영구 테이블, 일시적 테이블, 임시 테이블에 대한 제약 조건의 정의를 지원합니다. 모든 데이터 타입의 열에 제약 조건을 정의할 수 있으며, 제약 조건에 포함할 수 있는 열 개수에는 제한이 없습니다.

  • CREATE TABLE … LIKE 또는 CREATE TABLE … CLONE을 사용하여 테이블을 복사하면 외래 키를 포함하여 테이블의 모든 기존 제약 조건이 새 테이블에 복사됩니다.

  • 제약 조건이 있는 테이블에 대해 DROP/UNDROP 및 GET_DDL과 같은 추가적인 명령과 함수가 지원됩니다. 이들 명령과 함수는 스키마와 데이터베이스에도 지원됩니다.

    Snowflake Time Travel의 경우, Snowflake는 테이블 메타데이터에 이전 버전의 제약 조건을 저장하지 않으므로 이전 버전의 테이블을 복사할 때 테이블에서 현재 버전의 제약 조건이 사용됩니다.

단일 열 및 다중 열 제약 조건

같은 테이블의 단일 열 또는 다중 열에서 제약 조건을 정의할 수 있습니다.

다중 열 제약 조건(즉, 복합 기본 키 또는 고유 키)의 경우, 열이 정렬되고 각 열에는 해당 키 시퀀스가 있습니다.

인라인 및 아웃오브 라인 제약 조건

제약 조건은 테이블 만들기 또는 수정 중에 인라인 또는 아웃오브 라인으로 정의됩니다.

  • 인라인 제약 조건은 열 정의의 일부로 생성되고 단일 열 제약 조건에만 사용할 수 있습니다.

  • 아웃오브 라인 제약 조건은 제약 조건을 만든 열을 지정하는 별개의 절을 사용하여 정의됩니다. 단일 열 또는 다중 열 제약 조건 만들기뿐 아니라, 기존 열에 대한 제약 조건 만들기에도 이러한 제약 조건을 사용할 수 있습니다.