DROP CONSTRAINT-sats

Gäller för:markerad ja Databricks SQL markerad ja Databricks Runtime

Släpper en PRIMARY KEY, FOREIGN KEY, UNIQUEeller CHECK -begränsning från relationen.

Syntax

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

Parametrar

  • PRIMÄRNYCKEL [ OM FINNS ]

    gäller för:markerad som ja Databricks SQL markerad som ja Databricks Runtime 11.3 LTS och senare markerad som ja Unity Catalog

    Släpper primärnyckeln från relationen.

  • UTOMNYCKEL [ OM DET FINNS ] ( kolumn [, ...] )

    gäller för:markerad som ja Databricks SQL markerad som ja Databricks Runtime 11.3 LTS och senare markerad som ja Unity Catalog

    Släpper den främmande nyckeln som identifieras av den ordnade listan med kolumner.

  • CONSTRAINT [ OM FINNS ] namn

    Släpper den primära nyckeln, sekundärnyckeln, unik eller kontrollbegränsning som identifieras med namn. Kontroll och unika begränsningar måste tas bort med namn.

  • BEGRÄNSA eller KASKAD

    När du anger RESTRICT, och den primära nyckeln eller den unika begränsningen refereras av valfri sekundärnyckel, misslyckas instruktionen. När du anger CASCADEsläpper du primärnyckeln eller den unika begränsningen, vilket resulterar i att eventuella sekundärnycklar som refererar till relationen släpps. Standardvärdet är RESTRICT.

  • OM DET FINNS

    När du anger IF EXISTS ignoreras instruktionen om relationen inte har någon matchande begränsning.

Exempel

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