다음을 통해 공유


DROP CONSTRAINT 절

적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks 런타임

테이블에서 기본 키, 외래 키 또는 검사 제약 조건을 삭제합니다.

구문

DROP { PRIMARY KEY [ IF EXISTS ] [ RESTRICT | CASCADE ] |
       FOREIGN KEY [ IF EXISTS ] ( column [, ...] ) |
       CONSTRAINT [ IF EXISTS ] name [ RESTRICT | CASCADE ] }

매개 변수

  • PRIMARY KEY [ IF EXISTS ]

    적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks Runtime 11.3 LTS 이상 검사 '예'로 표시 Unity 카탈로그만

    테이블에서 기본 키를 삭제합니다.

  • FOREIGN KEY [ IF EXISTS ] ( column [, …] )

    적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks Runtime 11.3 LTS 이상 검사 '예'로 표시 Unity 카탈로그만

    정렬된 열 목록으로 식별되는 외래 키를 삭제합니다.

  • CONSTRAINT [ IF EXISTS ] 이름

    이름으로 식별되는 기본 키, 외래 키 또는 검사 제약 조건을 삭제합니다. 검사 제약 조건은 이름으로만 삭제할 수 있습니다.

  • RESTRICT 또는 CASCADE

    RESTRICT를 지정하고 기본 키를 외래 키에서 참조하는 경우 명령문이 실패합니다. CASCADE를 지정하는 경우 기본 키를 삭제하면 테이블을 참조하는 외래 키가 삭제됩니다. 외세 키가 정의된 테이블을 소유해야 합니다. 기본값은 RESTRICT입니다.

  • IF EXISTS

    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;