Partage via


Clause DROP CONSTRAINT

S’applique à : case marquée oui Databricks SQL case marquée oui Databricks Runtime

Supprime une contrainte PRIMARY KEY, FOREIGN KEY ou CHECK de la table.

Syntaxe

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

Paramètres

  • PRIMARY KEY [ IF EXISTS ]

    S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 11.3 LTS et versions ultérieures oui coché Unity Catalog uniquement

    Supprime la clé primaire de la table.

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

    S’applique à : coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 11.3 LTS et versions ultérieures oui coché Unity Catalog uniquement

    Supprime la clé étrangère identifiée par la liste ordonnée des colonnes.

  • CONSTRAINT [ IF EXISTS ] nom

    Supprime la clé primaire, la clé étrangère ou la contrainte de validation identifiée par son nom. Les contraintes de vérification ne peuvent être supprimées que via leur nom.

  • RESTRICT ou CASCADE

    Si vous spécifiez RESTRICT et que la clé primaire est référencée par une clé étrangère, l’instruction échoue. Si vous spécifiez CASCADE, le fait de supprimer la clé primaire entraîne la suppression des clés étrangères faisant référence à la table. Par défaut, il s’agit de RESTRICT.

  • IF EXISTS

    Si vous spécifiez IF EXISTS, l’instruction est ignorée si la table n’a pas de contrainte correspondante.

Exemples

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