DROP CONSTRAINT 句
適用対象: 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 [ IF EXISTS ]
適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以上 Unity Catalog のみ
テーブルから主キーを削除します。
FOREIGN KEY [ IF EXISTS ] ( column [, …] )
適用対象: Databricks SQL Databricks Runtime 11.3 LTS 以上 Unity Catalog のみ
列の順序指定済みリストで識別される外部キーを削除します。
CONSTRAINT [ IF EXISTS ] name
名前で識別される主キー、外部キー、または CHECK 制約を削除します。 CHECK 制約は名前によってのみ削除できます。
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;