Als je echt zeker weet dat je de tabel wilt laten vallen, ook al wordt er naar verwezen in externe sleutels, dan kun je het als volgt forceren:
drop table state cascade constraints;
Deze syntaxis is gedefinieerd in de Oracle SQL Reference .
Merk op dat hierdoor alle externe-sleutelrelaties worden verbroken. U moet ze dus opnieuw maken nadat u de tabel (en de primaire sleutel) opnieuw hebt opgebouwd. Normaal gesproken is dit oké, omdat het meest voorkomende gebruik het weggooien en opnieuw maken van schema's in ontwikkel- of CI-omgevingen is.
We kunnen gebruik maken van cascade constraints
om onze build-scripts gemakkelijker te onderhouden te maken. Er zijn twee alternatieven:
- Laat de externe-sleutelbeperkingen expliciet vallen voordat u de tabellen verwijdert, hetzij met een script of met dynamische SQL.
- Orden de DROPTABLE-instructies zo dat afhankelijke tabellen eerst worden gezapt, samen met hun vervelende externe sleutels. Makkelijk genoeg voor een handvol tabellen, pijnlijker met een groot schema.