暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Script: Procedure 启用/禁用表上全部外键

原创 Anbob 2012-03-27
414
一个充满外键的表中DML,因为验证的原因会浪费很多额外时间,如果在确保数据的合法性的前提下先禁用外键约束,操作完后再启用,可以提高你的DML速度,下面一个procedure启用/禁用表上的全部外键。
e.g

CREATE OR REPLACE PROCEDURE MODIF_FK_CONS (p_tname varchar2,isenable int)
/*
desc : 操作表上全部外键
author:anbob
date : 2012-3-27
param:isenable --1 启用 --0 禁用
*/
is
cursor c is select constraint_name from user_constraints where table_name=upper(p_tname) and constraint_type='R';
v_cname varchar2(30);
v_oper varchar2(10);
begin
if isenable = 0 then
v_oper := 'disable';
elsif isenable = 1 then
v_oper := 'enable';
end if;
open c;
loop
fetch c into v_cname;
exit when c%notfound;
dbms_output.put_line(v_cname);
execute immediate 'alter table '||p_tname||' '||v_oper||' constraint '||v_cname;
end loop;
close c;
end;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论