次の方法で共有


DROP CONSTRAINT 句

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

PRIMARY KEYFOREIGN KEY、またはCHECKの制約をリレーションから削除します。

構文

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

パラメーター

  • 主キー [ 存在する場合 ]

    適用対象:check marked yes Databricks SQL Databricks Runtime 11.3 LTS 以上 「はい」のチェック マーク Unity Catalog のみ

    リレーションシップから主キーを削除します。

  • 外部キー [ 存在する場合 ] ( 列 [, ...] )

    適用対象:check marked yes Databricks SQL Databricks Runtime 11.3 LTS 以上 「はい」のチェック マーク Unity Catalog のみ

    列の順序指定済みリストで識別される外部キーを削除します。

  • CONSTRAINT [ IF EXISTS ] 名前

    名前で識別される主キー、外部キー、または CHECK 制約を削除します。 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;