적용 대상:
Databricks SQL
Databricks Runtime
관계로부터 제약 PRIMARY KEYFOREIGN KEYUNIQUECHECK 조건을 삭제합니다.
구문
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;