Udostępnij za pośrednictwem


DROP CONSTRAINT klauzula

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Usuwa ograniczenie KLUCZA GŁÓWNEGO, KLUCZA OBCEGO lub ograniczenia CHECK z tabeli.

Składnia

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

Parametry

  • KLUCZ PODSTAWOWY [ JEŚLI ISTNIEJE ]

    Dotyczy:zaznaczone jako 'tak' Databricks SQL zaznaczone jako 'tak' Databricks Runtime 11.3 LTS i nowsze zaznaczone jako 'tak' tylko Unity Catalog

    Usuwa klucz podstawowy z tabeli.

  • KLUCZ OBCY [ JEŚLI ISTNIEJE ] ( kolumna [, ...] )

    Dotyczy:zaznaczone jako 'tak' Databricks SQL zaznaczone jako 'tak' Databricks Runtime 11.3 LTS i nowsze zaznaczone jako 'tak' tylko Unity Catalog

    Usuwa klucz obcy zidentyfikowany przez uporządkowaną listę kolumn.

  • CONSTRAINT [ JEŚLI ISTNIEJE ] nazwa

    Usuwa klucz podstawowy, klucz obcy lub ograniczenie sprawdzania zidentyfikowane przez nazwę. Sprawdzanie ograniczeń można porzucić tylko według nazwy.

  • OGRANICZ LUB CASCADE

    Jeśli określisz RESTRICT i klucz podstawowy zostanie przywołyny przez dowolny klucz obcy, instrukcja zakończy się niepowodzeniem. Jeśli określisz CASCADE, usunięcie klucza podstawowego spowoduje usunięcie wszelkich kluczy obcych odwołujących się do tabeli. Wartość domyślna to RESTRICT.

  • JEŚLI ISTNIEJE

    Jeśli określisz IF EXISTS instrukcja zostanie zignorowana, jeśli tabela nie ma pasującego ograniczenia.

Przykłady

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