다음을 통해 공유


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;