عبارة DROP CONSTRAINT

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime

إسقاط القيد PRIMARY KEY أو FOREIGN KEY أو CHECK من الجدول.

بناء الجملة

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

المعلمات

  • PRIMARY KEY [ IF EXISTS ]

    ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 11.3 LTS وما فوق وضع علامة كتالوج Unity فقط

    إسقاط المفتاح الأساسي من الجدول.

  • FOREIGN KEY [ IF EXISTS ] ( العمود [, ...] )

    ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime 11.3 LTS وما فوق وضع علامة كتالوج Unity فقط

    إسقاط المفتاح الخارجي المحدد بواسطة قائمة الأعمدة مرتبة.

  • CONSTRAINT [ IF EXISTS ] name

    إسقاط المفتاح الأساسي أو المفتاح الخارجي أو قيد التحقق المحدد بالاسم. يمكن إسقاط قيود التحقق فقط بالاسم.

  • تقييد أو تتالي

    إذا قمت بتحديد RESTRICT وتم الرجوع إلى المفتاح الأساسي بواسطة أي مفتاح خارجي، فستفشل العبارة. إذا قمت بتحديد CASCADE، يؤدي إسقاط المفتاح الأساسي إلى إسقاط أي مفاتيح خارجية تشير إلى الجدول. الافتراضي هو RESTRICT.

  • إذا كان موجودا

    إذا قمت بتحديد IF EXISTS العبارة سيتم تجاهلها إذا كان الجدول لا يحتوي على قيد مطابق.

الأمثلة

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