Klausa DROP CONSTRAINT
Berlaku untuk: Databricks SQL Databricks Runtime
Menghilangkan batasan PRIMARY KEY, FOREIGN KEY, atau CHECK dari tabel.
Sintaks
DROP { PRIMARY KEY [ IF EXISTS ] [ RESTRICT | CASCADE ] |
FOREIGN KEY [ IF EXISTS ] ( column [, ...] ) |
CONSTRAINT [ IF EXISTS ] name [ RESTRICT | CASCADE ] }
Parameter
KUNCI PRIMER [ JIKA ADA ]
Berlaku untuk: Databricks SQL Databricks Runtime 11.3 LTS dan di atas Unity Catalog saja
Menjatuhkan kunci primer dari tabel.
KUNCI ASING [ JIKA ADA ] ( kolom [, ...] )
Berlaku untuk: Databricks SQL Databricks Runtime 11.3 LTS dan di atas Unity Catalog saja
Menghilangkan kunci asing yang diidentifikasi oleh daftar kolom yang diurutkan.
BATASAN [ JIKA ADA ] nama
Menghilangkan kunci primer, kunci asing, atau memeriksa batasan yang diidentifikasi berdasarkan nama. Batasan pemeriksaan hanya dapat dihilangkan menurut nama.
BATASI atau CASCADE
Jika Anda menentukan
RESTRICT
dan kunci primer dirujuk oleh kunci asing apa pun, pernyataan akan gagal. Jika Anda menentukanCASCADE
, menghilangkan kunci utama menghasilkan menghilangkan kunci asing yang mereferensikan tabel. Default adalahRESTRICT
.JIKA ADA
Jika Anda menentukan
IF EXISTS
pernyataan akan diabaikan jika tabel tidak memiliki batasan yang cocok.
Contoh
> 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;