Ако наистина сте сигурни, че искате да премахнете таблицата, въпреки че е посочена във външни ключове, можете да я принудите по следния начин:
drop table state cascade constraints;
Този синтаксис е дефиниран в Oracle SQL Reference .
Обърнете внимание, че това премахва всякакви връзки с външни ключове. Така че ще трябва да ги създадете отново, след като сте изградили отново таблицата (и нейния първичен ключ). Обикновено това е добре, защото най-честият случай на употреба е изхвърляне и повторно създаване на схеми в среда за разработка или CI.
Можем да използваме cascade constraints
за да направим нашите скриптове за изграждане по-лесни за поддръжка. Има две алтернативи:
- Изрично премахнете ограниченията на външния ключ, преди да премахнете таблиците, или със скрипт, или с динамичен SQL.
- Поръчайте изразите DROPTABLE така, че зависимите таблици да бъдат затворени първи, заедно с техните досадни външни ключове. Достатъчно лесно за шепа таблици, по-болезнено с голяма схема.