DROP CONSTRAINT-Klausel
Gilt für: Databricks SQL Databricks Runtime
Löscht eine PRIMARY KEY-, FOREIGN KEY- oder CHECK-Einschränkung aus der Tabelle ab.
Syntax
DROP { PRIMARY KEY [ IF EXISTS ] [ RESTRICT | CASCADE ] |
FOREIGN KEY [ IF EXISTS ] ( column [, ...] ) |
CONSTRAINT [ IF EXISTS ] name [ RESTRICT | CASCADE ] }
Parameter
PRIMARY KEY [ IF EXISTS ]
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher Nur Unity Catalog
Löscht den Primärschlüssel aus der Tabelle.
FOREIGN KEY [ IF EXISTS ] ( column [, …] )
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher Nur Unity Catalog
Löscht den durch die sortierte Spaltenliste angegebenen Fremdschlüssel.
CONSTRAINT [ IF EXISTS ] name
Löscht die anhand des Namens angegebene Primärschlüssel- oder Fremdschlüsseleinschränkung oder CHECK-Einschränkung. CHECK-Einschränkungen können nur durch Angabe des Namens gelöscht werden.
RESTRICT oder CASCADE
Wenn Sie
RESTRICT
angeben und von einem Fremdschlüssel auf den Primärschlüssel verwiesen wird, tritt bei der Anweisung ein Fehler auf. Wenn SieCASCADE
angeben, werden durch das Löschen des Primärschlüssels auch alle Fremdschlüssel gelöscht, die auf die Tabelle verweisen. Der Standardwert istRESTRICT
.IF EXISTS
Wenn Sie
IF EXISTS
angeben, wird die Anweisung ignoriert, falls für die Tabelle keine übereinstimmende Einschränkung vorhanden ist.
Beispiele
> 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;