Удаление ограничения

Вы можете удалить любое ограничение с помощью ключевого слова DROP.

определение_удаляемого_ограничения =

{PRIMARY KEY | UNIQUE (список_столбцов) | CONSTRAINT имя_ограничения} [CASCADE]

PRIMARY KEY – удаляет ограничение первичного ключа

UNIQUE (список_колонок) – удаляет ограничение уникального ключа на заданных столбцах

CONSTRAINT имя_ограничения – удаляет ограничение с заданным именем

CASCADE – удаляет все ограничения целостности, которые зависели от удаляемого

После выполнения команды сервер базы данных перестает контролировать выполнение ограничения целостности и удаляет его из словаря данных.

SQL> ALTER TABLE t1 DROP CONSTRAINT t1_second_ck;

Table altered.

Нельзя удалять ограничение первичного или уникального ключа, если он является частью ограничения ссылочной целостности, не удалив соответствующий внешний ключ. Чтобы удалить сразу и первичный (уникальный), и внешний ключ, используйте ключевое слово CASCADE. Если Вы попытаетесь удалить ограничение, которое имеет зависимые ограничения, не используя ключевое слово CASCADE, сервер базы данных вернет ошибку.

SQL> ALTER TABLE t1 DROP PRIMARY KEY;

ALTER TABLE t1 DROP PRIMARY KEY

*

ERROR at line 1:

ORA-02273: this unique/primary key is referenced by some foreign keys

SQL> ALTER TABLE t1 DROP PRIMARY KEY CASCADE;

Table altered.

SQL> SELECT constraint_name, constraint_type FROM user_constraints

2 WHERE table_name IN ('T1', 'T2');

no rows selected