DROP CONSTRAINT-sats
Gäller för: Databricks SQL Databricks Runtime
Tar bort en PRIMÄRNYCKEL, UTLÄNDSK NYCKEL eller CHECK-begränsning från tabellen.
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: Databricks SQL Databricks Runtime 11.3 LTS och senare Unity Catalog
Tar bort primärnyckeln från tabellen.
SEKUNDÄRNYCKEL [ IF EXISTS ] ( kolumn [, ...] )
gäller för: Databricks SQL Databricks Runtime 11.3 LTS eller senare Unity Catalog endast
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 eller kontrollbegränsningen som identifieras med namn. Kontrollbegränsningar kan bara tas bort med namn.
BEGRÄNSA eller KASKAD
Om du anger
RESTRICT
och den primära nyckeln refereras till av någon sekundärnyckel misslyckas instruktionen. Om du angerCASCADE
, leder det till att genom att släppa primärnyckeln, så släpps även de externa nycklar som refererar till tabellen. Standardvärdet ärRESTRICT
.OM FINNS
Om du anger
IF EXISTS
kommer uttrycket att ignoreras om tabellen inte har en 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;