Es gibt mehrere Wege um einen Constraint abzuschalten. Hier zeige ich wie ich dies meistens mache.
Mit einem einfachen ALTER TABLE Befehlt, lässt sich der Constraint bereits disablen.
alter table TABLENAME disable constraint CONSTRAINTNAME;
alter table TABLENAME enable constraint CONSTRAINTNAME;
Eine andere Möglichkeit sind PL/SQL-Blöcke zu verwenden.
begin for i in (select constraint_name, table_name from user_constraints) LOOP execute immediate 'alter table '||i.table_name||' disable constraint '||i.constraint_name||''; end loop; end; /
begin for i in (select constraint_name, table_name from user_constraints) LOOP execute immediate 'alter table '||i.table_name||' enable constraint '||i.constraint_name||''; end loop; end; /
Natürlich gibt es noch eine Menge andere Möglichkeiten, z.b. eigene Prozeduren, jedoch sind diese dann meistens speziel für bestimmte Applikationen nötig.