Delen via


DROP CONSTRAINT-clausule

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Hiermee wordt een PRIMARY KEY, FOREIGN KEYof CHECK beperking van de relatie verwijderd.

Syntaxis

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

Parameterwaarden

  • PRIMAIRE SLEUTEL [ INDIEN AANWEZIG ]

    Van toepassing op:aangevinkt: ja Databricks SQL aangevinkt: ja Databricks Runtime 11.3 LTS en hoger aangevinkt: ja Unity Catalog alleen

    Hiermee wordt de primaire sleutel uit de relatie verwijderd.

  • REFERERENDE SLEUTEL [ INDIEN AANWEZIG ] ( kolom [, ...] )

    Van toepassing op:aangevinkt: ja Databricks SQL aangevinkt: ja Databricks Runtime 11.3 LTS en hoger aangevinkt: ja Unity Catalog alleen

    Hiermee wordt de refererende sleutel verwijderd die is geïdentificeerd door de geordende lijst met kolommen.

  • CONSTRAINT [INDIEN AANWEZIG] Naam

    Hiermee wordt de primaire sleutel, refererende sleutel of controlebeperking verwijderd die wordt geïdentificeerd door de naam. Controlebeperkingen kunnen alleen worden verwijderd op naam.

  • BEPERKEN OF TRAPSGEWIJS

    Wanneer u RESTRICT opgeeft en de primaire sleutel wordt verwezen naar door een vreemde sleutel, mislukt de instructie. Wanneer u CASCADE opgeeft, resulteert het verwijderen van de primaire sleutel in het verwijderen van buitenlandse sleutels die naar de relatie verwijzen. De standaardwaarde is RESTRICT.

  • INDIEN AANWEZIG

    Wanneer u IF EXISTS opgeeft, wordt de instructie genegeerd als de relatie geen overeenkomende voorwaarde heeft.

Voorbeelden

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