klauzule DROP CONSTRAINT

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime

Zahodí PRIMARY KEYz relace , FOREIGN KEY, UNIQUEnebo CHECK omezení.

Syntaxe

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

Parametry

  • PRIMÁRNÍ KLÍČ [ POKUD EXISTUJE ]

    platí pro:zaškrtněte Databricks SQL zaškrtněte Databricks Runtime 11.3 LTS a vyšší zaškrtněte Unity Catalog.

    Zahodí primární klíč z relace.

  • CIZÍ KLÍČ [ POKUD EXISTUJE ] ( sloupec [; ...] )

    platí pro:zaškrtněte Databricks SQL zaškrtněte Databricks Runtime 11.3 LTS a vyšší zaškrtněte Unity Catalog.

    Odstraní cizí klíč identifikovaný seřazeným seznamem sloupců.

  • CONSTRAINT [ POKUD EXISTUJE ] název

    Zahodí primární klíč, cizí klíč, jedinečný nebo zkontroluje omezení identifikovaná podle názvu. Kontrola a jedinečná omezení musí být vyřazena podle názvu.

  • RESTRICT nebo CASCADE

    Když zadáte RESTRICTa primární klíč nebo jedinečné omezení odkazuje jakýkoli cizí klíč, příkaz selže. Když zadáte CASCADE, vyřazení primárního klíče nebo jedinečného omezení způsobí vyřazení všech cizích klíčů odkazujících na vztah. Výchozí hodnota je RESTRICT.

  • POKUD EXISTUJE

    Pokud zadáte IF EXISTS, příkaz bude ignorován, pokud relace nemá žádné odpovídající omezení.

Příklady

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