good name
:
1,先备份吧
2,可以设置级联更新,或者把关系去掉
3,脚本方面你可以先建立个临时表,然后用plsql循环来操作,比如100条就commit一下,然后记住当前最大的rowid或者你能唯一的列,因为如果一旦失败,你可以得知从什么点上继续恢复!知道短点续传的好处吧
:
1,先备份吧
2,可以设置级联更新,或者把关系去掉
3,脚本方面你可以先建立个临时表,然后用plsql循环来操作,比如100条就commit一下,然后记住当前最大的rowid或者你能唯一的列,因为如果一旦失败,你可以得知从什么点上继续恢复!知道短点续传的好处吧
select * from all_indexes where owner='USER'
在pl/sql脚本中可以运行大致如下的语句:
用一个游标
select table_name,constraint_name into xxx,yyy from user_constraints
where R_CONSTRAINT_NAME in
(select CONSTRAINT_NAME from USER_CONSTRAINTS
where table_name='你的A表名称' and CONSTRAINT_TYPE='P');
然后用动态sql
execute immediate 'alter table '||xxx ||'disable constraint '||yyy ;
循环去除外键约束.
然后该你的数据。
最后再恢复:
还用那个游标:
select table_name,constraint_name into xxx,yyy from user_constraints
where R_CONSTRAINT_NAME in
(select CONSTRAINT_NAME from USER_CONSTRAINTS
where table_name='你的A表名称' and CONSTRAINT_TYPE='P');
用动态sql
execute immediate 'alter table '||xxx ||'enable constraint '||yyy ;一切ok