제약 조건 수정하기

제약 조건이 생성된 후 다음과 같은 방법으로 수정할 수 있습니다.

  • 제약 조건의 이름을 바꿀 수 있습니다.

  • 일부 속성은 수정할 수 있습니다(예: RELY).

  • 일부 속성은 수정할 수 없습니다(예: DEFERRABLE). 이러한 속성을 수정하려면 제약 조건을 삭제하고 다시 생성해야 합니다.

  • 제약 조건에 대한 열 정의는 수정할 수 없습니다. 예를 들어, 새 열을 추가하거나 기존 열을 삭제하거나 열 순서를 변경할 수 없습니다. 이러한 유형의 변경을 수행하려면 제약 조건을 삭제하고 다시 생성해야 합니다.

제약 조건을 수정할 때 제약 조건 유형과 함께 제약 조건 이름 또는 제약 조건 정의의 열을 사용하여 제약 조건을 식별합니다. 각 테이블에는 하나의 PRIMARY KEY만 포함될 수 있으므로 기본 키는 PRIMARY KEY 키워드를 사용하여 식별할 수도 있습니다.

제약 조건이 있는 테이블을 수정하면(예: 테이블 이름 바꾸기 또는 테이블을 다른 테이블과 바꾸기) 제약 조건이 변경 사항을 반영하도록 업데이트됩니다.

제약 조건 이름 바꾸기

제약 조건의 이름을 바꾸려면 ALTER TABLE 명령에 다음 구문을 사용하십시오.

ALTER TABLE <table_name> RENAME CONSTRAINT <old_name> TO <new_name>;

제약 조건의 속성 수정하기

ALTER TABLE 명령에 다음 구문을 사용하여 제약 조건의 속성을 수정합니다.

ALTER TABLE <table_name>
  { ALTER | MODIFY } {
      CONSTRAINT <name>
    | PRIMARY KEY
    | { UNIQUE | FOREIGN KEY } (<column_name>, [ ... ] )
  }
  { [ [ NOT ] ENFORCED ] [ VALIDATE | NOVALIDATE ] [ RELY | NORELY ] };

CHECK 제약 조건의 경우 constraint_name 은 필수입니다. 또한 CHECK 제약 조건과 연결된 expr 은 수정할 수 없습니다. expr 을 수정하려면 CHECK 제약 조건을 삭제하고 다시 생성해야 합니다.

현재 Snowflake는 다음 제약 조건 속성 설정만 지원합니다.

  • [ NOT ] ENFORCED

  • NOVALIDATE 및 VALIDATE

  • RELY 및 NORELY

Snowflake는 ENFORCED 설정을 지원하지 않습니다. Snowflake는 CHECK 제약 조건에 대한 NOVALIDATE 설정만 지원합니다. ENABLE 및 VALIDATE 속성의 기본값이 아닌 값 섹션을 참조하세요.

제약 조건 속성에 대한 설명은 제약 조건 속성 을 참조하십시오.

제약 조건이 있는 테이블 수정하기

제약 조건이 있는 테이블의 이름을 바꾸면 테이블에 대한 제약 조건 및 테이블을 참조하는 모든 FOREIGN KEY 제약 조건이 새 이름을 참조하도록 업데이트됩니다.

마찬가지로, 테이블을 다른 테이블, 기존 테이블과 바꿀 경우 테이블의 모든 제약 조건이 바뀐 테이블에 그대로 유지됩니다.

테이블 이름 바꾸기 또는 테이블 바꾸기에 대한 자세한 내용은 ALTER TABLE 을 참조하십시오.