DROP CONSTRAINT-Klausel

Wichtig

Dieses Feature befindet sich in der Public Preview.

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert 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:Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 11.1 und höher Häkchen gesetzt ja Nur Unity Catalog

    Löscht den Primärschlüssel aus der Tabelle.

  • FOREIGN KEY [ IF EXISTS ] ( column [, …] )

    Gilt für:Häkchen gesetzt ja Databricks SQL Häkchen gesetzt ja Databricks Runtime 11.1 und höher Häkchen gesetzt ja 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 Sie CASCADE angeben, werden durch das Löschen des Primärschlüssels auch alle Fremdschlüssel gelöscht, die auf die Tabelle verweisen. Sie müssen der Besitzer der Tabellen sein, für die die Fremdschlüssel definiert sind. Der Standardwert lautet RESTRICT.

  • 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;