我对 SQL 很陌生,所以很容易回答我的问题。
这是我想做的事情:
停用约束:
停用数据库中的约束:
begin for cur in (select fk.owner, fk.constraint_name , fk.table_name from all_constraints fk, all_constraints pk where fk.CONSTRAINT_TYPE = 'R' and pk.owner = 'USER1' and fk.R_CONSTRAINT_NAME = pk.CONSTRAINT_NAME ) loop execute immediate 'ALTER TABLE '||cur.owner||'.'||cur.table_name||' MODIFY CONSTRAINT '||cur.constraint_name||' DISABLE'; end loop; end;
从表中删除:
delete from USER_TEST.Table1; delete from USER_TEST.Table2; delete from USER_TEST.Table3;
重新激活约束:
begin for cur in (select fk.owner, fk.constraint_name , fk.table_name from all_constraints fk, all_constraints pk where fk.CONSTRAINT_TYPE = 'R' and pk.owner = 'USER1' and fk.R_CONSTRAINT_NAME = pk.CONSTRAINT_NAME ) loop execute immediate 'ALTER TABLE '||cur.owner||'.'||cur.table_name||' MODIFY CONSTRAINT '||cur.constraint_name||' ENABLE NOVALIDATE'; end loop; end;
有谁知道如何将这些步骤组合到一个.sql
脚本中,以便我可以在 Oracle SQLDeveloper 上运行它?或者也许是一种更优雅的方式来执行从表中删除?
我会非常感谢