首页 » ORACLE 9i-23ai » Script: Procedure 启用/禁用表上全部外键
Script: Procedure 启用/禁用表上全部外键
一个充满外键的表中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;
对不起,这篇文章暂时关闭评论。