적용 대상:
Databricks SQL
Databricks Runtime
관계에서 PRIMARY KEY, FOREIGN KEY, 또는 CHECK 제약 조건을 삭제합니다.
구문
DROP { PRIMARY KEY [ IF EXISTS ] [ RESTRICT | CASCADE ] |
FOREIGN KEY [ IF EXISTS ] ( column [, ...] ) |
CONSTRAINT [ IF EXISTS ] name [ RESTRICT | CASCADE ] }
매개 변수
PRIMARY KEY [ 존재하는 경우 ]
적용 대상:
Databricks SQL
Databricks Runtime 11.3 LTS 이상
Unity 카탈로그만 해당관계로부터 기본 키를 삭제합니다.
외래 키 [IF EXISTS] ( 열 [, ...] )
적용 대상:
Databricks SQL
Databricks Runtime 11.3 LTS 이상
Unity 카탈로그만 해당정렬된 열 목록으로 식별되는 외래 키를 삭제합니다.
CONSTRAINT [ 존재하는 경우 ] 이름
이름으로 식별되는 기본 키, 외래 키 또는 CHECK 제약 조건을 삭제합니다. 검사 제약 조건은 이름으로만 삭제할 수 있습니다.
RESTRICT 또는 CASCADE
RESTRICT를 지정하고 기본 키가 외래 키에 의해 참조될 때, 문이 실패합니다. 지정할CASCADE때 기본 키를 삭제하면 관계를 참조하는 외래 키가 삭제됩니다. 기본값은RESTRICT입니다.존재하는 경우
IF EXISTS를 지정할 때, 관계에 일치하는 제약 조건이 없는 경우 문이 무시됩니다.
예제
> CREATE TABLE persons(first_name STRING NOT NULL, last_name STRING NOT NULL, nickname STRING);
> ALTER TABLE persons ADD CONSTRAINT persons_pk PRIMARY KEY(first_name, last_name);
> CREATE TABLE pets(name STRING, owner_first_name STRING, owner_last_name STRING);
> ALTER TABLE pets ADD CONSTRAINT pets_persons_fk FOREIGN KEY (owner_first_name, owner_last_name) REFERENCES persons;
> ALTER TABLE pets ADD CONSTRAINT pets_name_not_cute_chk CHECK (length(name) < 20);
-- Drop the check constraint by name
> ALTER TABLE pets DROP CONSTRAINT pets_name_not_cute_chk;
-- Attempt to drop the primary key of persons by name
> ALTER TABLE persons DROP CONSTRAINT persons_pk RESTRICT;
Error: A foreign key `pets_persons_fk` depends on the primary key
-- Drop the foreign key from pets by listing the columns
> ALTER TABLE pets DROP FOREIGN KEY IF EXISTS (owner_first_name, owner_last_name);
-- Drop the primary key of persons
> ALTER TABLE persons DROP PRIMARY KEY CASCADE;