Pokud jste si opravdu jisti, že chcete tabulku zrušit, i když na ni odkazují cizí klíče, můžete to vynutit takto:
drop table state cascade constraints;
Tato syntaxe je definována v příručce Oracle SQL Reference .
Všimněte si, že to zruší všechny vztahy cizího klíče. Budete je tedy muset znovu vytvořit poté, co jste přestavěli tabulku (a její primární klíč). Normálně je to v pořádku, protože nejběžnějším případem použití je vyhazování a opětovné vytváření schémat ve vývojových nebo CI prostředích.
Můžeme použít cascade constraints
aby se naše skripty sestavení snadněji udržovaly. Existují dvě alternativy:
- Před zrušením tabulek explicitně zrušte omezení cizího klíče, a to buď pomocí skriptu, nebo pomocí dynamického SQL.
- Seřaďte příkazy DROPTABLE tak, aby byly nejprve přerušeny závislé tabulky spolu s jejich otravnými cizími klíči. Dost snadné pro hrstku tabulek, bolestivější s velkým schématem.