제약 조건 만들기

CREATE TABLE 을 사용해 테이블을 만들 때 제약 조건을 만들거나, ALTER TABLE 을 사용해 나중에 테이블에 제약 조건을 추가할 수 있습니다.

  • 단일 열 제약 조건은 열 정의의 일부로 인라인으로 만들 수 있습니다.

  • 다중 열 제약 조건은 제약 조건에서 열을 지정하는 별개의 절(즉, 아웃오브 라인 절)에서 만들어야 합니다.

제약 조건을 만들려면 제약 조건을 만드는 데 사용되는 역할에 특정 액세스 제어 권한을 부여해야 합니다. 자세한 내용은 액세스 제어 요구 사항 섹션을 참조하십시오.

인라인으로 제약 조건 만들기

다음 인라인 구문은 단일 열 제약 조건에만 사용할 수 있습니다.

CREATE [ OR REPLACE ] TABLE <name> (<column_name> <column_type> [ <inline_constraint> ] , ... )

ALTER TABLE <name> ADD COLUMN <column_name> <column_type> [ <inline_constraint> ]
Copy

inline_constraint 구문 세부 정보는 CREATE | ALTER TABLE … CONSTRAINT 를 참조하십시오.

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

다음 아웃오브 라인 구문은 다중 열 제약 조건에 사용해야 하지만, 단일 열 제약 조건에도 사용할 수 있습니다.

CREATE [ OR REPLACE ] TABLE <name> ( ... , [ <outofline_constraint> ], ... )

ALTER TABLE <name> ADD <outofline_constraint>
Copy

outofline_constraint 구문 세부 정보는 CREATE | ALTER TABLE … CONSTRAINT 를 참조하십시오.

CREATE TABLE … LIKE 및 CLONE의 제약 조건

Snowflake는 CREATE TABLE 을 사용해 테이블 복사본 만들기를 지원합니다.

  • 빈 복사본을 만들려면 CREATE TABLE … LIKE를 사용하십시오.

  • 복제본을 만들려면 CREATE TABLE … CLONE을 사용하십시오.

그 밖에도, 스키마 또는 데이터베이스를 복제하면 테이블의 복사본이 자동으로 생성됩니다.

테이블의 복사본을 만드는 방식과 상관없이, 원본 테이블에 대한 제약 조건도 복사됩니다. 참조하는 테이블(외래 키 테이블) 및 참조되는 테이블(기본 키 테이블)과 함께 외래 키를 복사할 때 다음 상황이 발생할 수 있습니다.

  • 두 테이블이 모두 같은 명령으로 복사되는 경우(예: 스키마 또는 데이터베이스 복제 중) 참조하는 새 테이블과 참조되는 테이블 사이에 새 외래 키가 생성됩니다.

  • 참조하는 테이블만 복사되는 경우 참조하는 테이블에 새 외래 키가 생성되는데, 이는 원래 기본 키 테이블을 참조되는 테이블로 가리키는 것입니다.

  • 참조되는 테이블만 복사되면 기본/고유 키가 복사되더라도 새 외래 키가 생성되지 않습니다.

결과적으로, 자신이 참조하는 테이블과 참조되는 테이블을 따로 복사하는 경우 새 외래 키를 수동으로 만들거나 새 외래 키의 기본 키 테이블을 수동으로 변경해야 합니다.