码迷,mamicode.com
首页 > 其他好文 > 详细

清除oracl中有主外键关联的表中的部分数据。

时间:2014-07-02 17:27:07      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:数据   for   数据库   sql   type   table   

1.禁用主外键
BEGIN
for c in (select ‘ALTER TABLE ‘||TABLE_NAME||‘ DISABLE CONSTRAINT ‘||constraint_name||‘ ‘ as v_sql from user_constraints where CONSTRAINT_TYPE=‘R‘) loop
EXECUTE IMMEDIATE c.v_sql;
end loop;
end;
2.清空数据源。清空所有数据。一般情况是对表进行条件删除。
begin
for ec in
(select table_name from user_tables)
loop
execute immediate ‘delete ‘|| ec.table_name;
end loop;
end;
commit;
3.启动主外键:
BEGIN
for c in (select ‘ALTER TABLE ‘||TABLE_NAME||‘ ENABLE CONSTRAINT ‘||constraint_name||‘ ‘ as v_sql from user_constraints where CONSTRAINT_TYPE=‘R‘) loop
EXECUTE IMMEDIATE c.v_sql;
end loop;
end;
4.启动失败,有时候因为删除了父级数据而子级没删,看数据库报错信息,一步一步往下找,从下到上把子数据删除。
5.再次启动主外键。

清除oracl中有主外键关联的表中的部分数据。,布布扣,bubuko.com

清除oracl中有主外键关联的表中的部分数据。

标签:数据   for   数据库   sql   type   table   

原文地址:http://www.cnblogs.com/SamllBaby/p/3819910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!