Cláusula DROP CONSTRAINT

Importante

Esta característica está en versión preliminar pública.

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Elimina una restricción PRIMARY KEY, FOREIGN KEY o CHECK de la tabla.

Sintaxis

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

Parámetros

  • PRIMARY KEY [ IF EXISTS ]

    Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.1 y versiones posteriores casilla marcada como Sí Solo Unity Catalog

    Elimina la clave principal de la tabla.

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

    Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.1 y versiones posteriores casilla marcada como Sí Solo Unity Catalog

    Elimina la clave externa identificada por la lista ordenada de columnas.

  • CONSTRAINT [ IF EXISTS ] nombre

    Elimina la clave principal, la clave externa o la restricción de comprobación identificada por el nombre. Las restricciones de comprobación solo se pueden eliminar por nombre.

  • RESTRICT o CASCADE

    Si especifica RESTRICT y cualquier clave externa hace referencia a la clave principal, se producirá un error en la instrucción. Si especifica CASCADE, la eliminación de la clave principal da como resultado la eliminación de las claves externas que hagan referencia a la tabla. Debe ser el propietario de las tablas en las que se han definido las claves externas. El valor predeterminado es RESTRICT.

  • IF EXISTS

    Si especifica IF EXISTS, la instrucción se omitirá si la tabla no tiene ninguna restricción coincidente.

Ejemplos

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