Clausola DROP CONSTRAINT

Importante

Questa funzionalità è disponibile in anteprima pubblica.

Si applica a:check contrassegnato con sì controllo SQL di Databricks contrassegnato con sì Databricks Runtime

Elimina un vincolo PRIMARY KEY, FOREIGN KEY o CHECK dalla tabella.

Sintassi

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

Parametri

  • CHIAVE PRIMARIA [ IF EXISTS ]

    Si applica a:check contrassegnato con sì controllo SQL di Databricks contrassegnato con sì Databricks Runtime 11.1 e versioni successive , contrassegnato come sì solo catalogo Unity

    Elimina la chiave primaria dalla tabella.

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

    Si applica a:check contrassegnato con sì controllo SQL di Databricks contrassegnato con sì Databricks Runtime 11.1 e versioni successive , contrassegnato come sì solo catalogo Unity

    Elimina la chiave esterna identificata dall'elenco ordinato di colonne.

  • CONSTRAINT [ IF EXISTS ] name

    Elimina la chiave primaria, la chiave esterna o il vincolo CHECK identificato dal nome. I vincoli Check possono essere eliminati solo in base al nome.

  • RESTRICT o CASCADE

    Se si specifica RESTRICT e viene fatto riferimento alla chiave primaria da qualsiasi chiave esterna, l'istruzione avrà esito negativo. Se si specifica CASCADE, l'eliminazione della chiave primaria comporta l'eliminazione di eventuali chiavi esterne che fanno riferimento alla tabella. È necessario essere proprietari delle tabelle in cui sono definite le chiavi esterne. Il valore predefinito è RESTRICT.

  • IF EXISTS

    Se si specifica IF EXISTS l'istruzione verrà ignorata se la tabella non ha alcun vincolo corrispondente.

Esempi

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