제약 조건 삭제¶
제약 조건은 다음의 ALTER TABLE 명령을 사용하여 삭제됩니다.
ALTER TABLE … DROP CONSTRAINT는 지정된 제약 조건을 명시적으로 삭제합니다. 제약 조건 수정과 유사하게, 제약 조건 유형과 함께 제약 조건 이름 또는 열 정의를 사용하여 제약 조건을 식별할 수 있습니다. 기본 키의 경우 제약 조건은 PRIMARY KEY 키워드를 사용하여 식별할 수도 있습니다.
ALTER TABLE … DROP COLUMN은 열과 그 열에 관련된 제약 조건을 삭제합니다.
기본적으로, 기본 키 또는 고유 키를 삭제하면 RESTRICT 삭제 옵션을 지정하지 않는 한, 삭제되는 키를 참조하는 모든 외래 키도 삭제됩니다.
연결된 테이블, 스키마, 데이터베이스를 삭제하면 제약 조건도 삭제됩니다. DROP 명령은 CASCADE | RESTRICT 드롭 옵션을 지원합니다.
참고
삭제한 테이블, 스키마, 데이터베이스는 UNDROP 명령을 사용하여 복원할 수 있습니다. 삭제한 열과 제약 조건은 복원할 수 없습니다.
제약 조건 삭제¶
ALTER TABLE … DROP CONSTRAINT 명령을 사용하여 UNIQUE, PRIMARY KEY, FOREIGN KEY 및 CHECK 제약 조건을 명시적으로 삭제할 수 있습니다.
이러한 제약 조건의 경우, FOREIGN KEY 제약 조건이나 외래 키 참조가 없는 기본 키 또는 고유 키 제약 조건을 삭제할 때 제약 조건이 직접 삭제됩니다.
기본 삭제 옵션은 CASCADE인데, 이는 곧 외래 키 참조가 있는 고유 키 또는 기본 키를 삭제하면 참조하는 모든 외래 키가 고유 키 또는 기본 키와 함께 삭제됨을 의미합니다.
RESTRICT 삭제 옵션을 지정한 경우 기본 키 또는 고유 키를 삭제할 때, 삭제되는 키를 참조하는 외래 키가 존재하면 오류가 반환됩니다.
열 삭제하기¶
ALTER TABLE … DROP COLUMN을 사용한 열 삭제는 제약 조건 삭제와 비슷하게 동작합니다.
PRIMARY KEY, UNIQUE 및 FOREIGN KEY 제약 조건에서 기본 삭제 옵션은 CASCADE입니다. 즉, 삭제되는 열을 포함하는 모든 제약 조건도 삭제됩니다. 열과 관련된 기본 키 또는 고유 키가 다른 FOREIGN KEY 제약 조건에서 참조되는 경우, 참조하는 모든 외래 키가 삭제됩니다. RESTRICT 옵션이 지정된 경우, 열에 외래 키 참조가 있는 기본 키 또는 고유 키가 있으면 오류가 반환됩니다. 삭제 명령은 정의된 제약 조건이 없거나 삭제 중인 열을 참조하는 경우에만 성공합니다.
단일 열을 참조하는 CHECK 제약 조건의 경우 기본 삭제 옵션은 CASCADE입니다. 그러나 여러 열을 참조하는 CHECK 제약 조건의 경우 기본 삭제 옵션은 RESTRICT이며, 이 옵션은 데이터 무결성에 필요할 수 있는 제약 조건이 실수로 삭제되는 것을 방지합니다.
테이블, 스키마 및 데이터베이스 삭제하기¶
DROP 명령을 실행하면 지정한 테이블, 스키마 또는 데이터베이스가 삭제되며, 오브젝트와 관련된 모든 제약 조건을 삭제하도록 이 명령을 지정할 수도 있습니다.
열 및 제약 조건 삭제와 마찬가지로, CASCADE가 기본 삭제 옵션이며 삭제되는 오브젝트에 속하거나 이런 오브젝트를 참조하는 모든 제약 조건도 삭제됩니다.
예를 들어, 데이터베이스를 삭제할 때 데이터베이스에 다른 데이터베이스의 외래 키가 참조하는 기본 키 또는 고유 키가 포함되어 있으면 참조하는 외래 키도 삭제됩니다.
나중에 오브젝트 삭제를 취소하면 이전에 삭제한 모든 관련 제약 조건이 복원됩니다.
RESTRICT 옵션을 지정한 경우 오브젝트 아래의 모든 PRIMARY KEY 또는 UNIQUE 제약 조건에 외래 키 참조가 있으면 오류가 반환됩니다.