제약 조건 삭제

제약 조건은 ALTER TABLE 명령을 사용하여 삭제합니다.

  • ALTER TABLE … DROP CONSTRAINT …는 지정된 제약 조건을 명시적으로 삭제합니다. 제약 조건 수정과 마찬가지로, 제약 조건 유형과 함께 제약 조건 이름 또는 열 정의로 제약 조건을 식별할 수 있습니다. 기본 키의 경우 PRIMARY KEY 키워드를 사용하여 제약 조건을 식별할 수도 있습니다.

  • ALTER TABLE … DROP COLUMN …는 열과 그 열에 관련된 제약 조건을 삭제합니다.

기본적으로, 기본/고유 키를 삭제하면 RESTRICT 삭제 옵션을 지정하지 않는 한 삭제되는 키를 참조하는 모든 외래 키도 삭제됩니다.

연결된 테이블/스키마/데이터베이스를 삭제하면 제약 조건도 삭제됩니다. DROP 명령은 CASCADE | RESTRICT 삭제 옵션을 지원합니다.

참고

삭제한 테이블, 스키마, 데이터베이스는 UNDROP 명령을 사용하여 복원할 수 있으며, 삭제한 열과 제약 조건을 복원할 수는 없습니다.

이 항목의 내용:

제약 조건 삭제

(ALTER TABLE … DROP CONSTRAINT …를 사용하여) 고유/기본/외래 키 제약 조건을 명시적으로 삭제할 수 있습니다.

ALTER TABLE <table_name> DROP { CONSTRAINT <name> | PRIMARY KEY | { UNIQUE | FOREIGN KEY } (<column>, [ ... ] ) } [ CASCADE | RESTRICT ]
Copy

이러한 제약 조건의 경우, 외래 키 제약 조건이나 외래 키 참조가 없는 기본/고유 키 제약 조건을 삭제할 때 제약 조건이 직접 삭제됩니다.

기본 삭제 옵션은 CASCADE인데, 이는 곧 외래 키 참조가 있는 고유/기본 키를 삭제하면 참조하는 모든 외래 키가 고유/기본 키와 함께 삭제된다는 뜻입니다.

  • RESTRICT 삭제 옵션을 지정한 경우 기본/고유 키를 삭제할 때, 삭제되는 키를 참조하는 외래 키가 존재하면 오류가 반환됩니다.

열 삭제

ALTER TABLE … DROP COLUMN …을 사용한 열 삭제는 제약 조건 삭제와 비슷하게 동작합니다.

ALTER TABLE <table_name> DROP COLUMN <name> [ CASCADE | RESTRICT ]
Copy

기본 삭제 옵션은 CASCADE인데, 이는 곧 삭제되는 열을 포함하는 모든 제약 조건도 삭제된다는 뜻입니다. 열과 관련된 기본/고유 키를 다른 외래 키 제약 조건에서 참조하는 경우, 참조하는 외래 키는 전부 삭제됩니다.

  • RESTRICT 옵션을 지정하는 경우, 열에 외래 키 참조를 포함한 기본/고유 키가 있으면 오류가 반환됩니다. 삭제되는 열에 대해 정의되거나 이 열을 참조하는 제약 조건이 없는 경우에만 이 삭제 명령이 성공합니다.

테이블/스키마/데이터베이스 삭제

DROP 명령을 실행하면 지정한 테이블, 스키마 또는 데이터베이스가 삭제되며, 오브젝트와 관련된 모든 제약 조건을 삭제하도록 이 명령을 지정할 수도 있습니다.

DROP { TABLE | SCHEMA | DATABASE } <name> [ CASCADE | RESTRICT ]
Copy

열 및 제약 조건 삭제와 마찬가지로, CASCADE가 기본 삭제 옵션이며 삭제되는 오브젝트에 속하거나 이런 오브젝트를 참조하는 모든 제약 조건도 삭제됩니다.

예를 들어 데이터베이스를 삭제할 때, 데이터베이스에 다른 데이터베이스의 외래 키가 참조하는 기본/고유 키가 포함되어 있으면 참조하는 외래 키도 삭제됩니다.

나중에 오브젝트 삭제를 취소하면 이전에 삭제한 모든 관련 제약 조건이 복원됩니다.

RESTRICT 옵션을 지정한 경우 오브젝트 아래의 모든 기본/고유 제약 조건에 외래 키 참조가 있으면 오류가 반환됩니다.