Вы можете удалить любое ограничение с помощью ключевого слова 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