ORACLE 禁用 啟用外來鍵和觸發器

2021-09-30 07:44:50 字數 2231 閱讀 9031

1

、oracle

資料庫中的外來鍵約束名都在表

user_constraints

中可以查到。其中

constraint_type='r'

表示是外來鍵約束。

2、啟用外來鍵約束的命令為:

alter table table_name enable constraint constraint_name 3

、禁用外來鍵約束的命令為:

alter table table_name disable constraint constraint_name 4

、然後再用

sql查出資料庫中所以外來鍵的約束名:

select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='r'

select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='r'

在很多資料庫維護工作中,經常會遇到對現有資料的匯入匯出的操作,但是資料庫中表與表之間有很多外間關係,不能直接的按維護要求對資料進行操作,所有需要對這些外來鍵和觸發器臨時的禁用,然後在運算元據,完成操作後在啟用對應的外來鍵和觸發器,下面的指令碼就是提供對整個使用者物件的外來鍵和觸發器的禁用和啟用指令碼:

--禁用指令碼

set serveroutput on size 100000

begin

for c in (select 'alter table '||table_name||' disable constraint '||constraint_name||' ' as v_sql from user_constraints where constraint_type='r') loop

dbms_output.put_line(c.v_sql);

begin

execute immediate c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop; 

for c in (select 'alter table '||tname||' disable all triggers ' as v_sql from tab where tabtype='table') loop

dbms_output.put_line(c.v_sql);

begin

execute immediate c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

end;/--

啟用指令碼

set serveroutput on size 100000

begin

for c in (select 'alter table '||table_name||' enable constraint '||constraint_name||' ' as v_sql from user_constraints where constraint_type='r') loop

dbms_output.put_line(c.v_sql);

begin

execute immediate c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop; 

for c in (select 'alter table '||tname||' enable all triggers ' as v_sql from tab where tabtype='table') loop

dbms_output.put_line(c.v_sql);

begin

execute immediate c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

end;

/

ORACLE 禁用 啟用外來鍵和觸發器

1 oracle資料庫中的外來鍵約束名都在表user constraints中可以查到。其中constraint type r 表示是外來鍵約束。2 啟用外來鍵約束的命令為 alter table table name enable constraint constraint name 3 禁用外來...

ORACLE 禁用 啟用外來鍵和觸發器

oracle 禁用 啟用外來鍵和觸發器 在很多資料庫維護工作中,經常會遇到對現有資料的匯入匯出的操作,但是資料庫中表與表之間有很多外間關係,不能直接的按維護要求對資料進行操作,所有需要對這些外來鍵和觸發器臨時的禁用,然後在運算元據,完成操作後在啟用對應的外來鍵和觸發器,下面的指令碼就是提供對整個使用...

ORACLE 禁用 啟用外來鍵和觸發器

在很多資料庫維護工作中,經常會遇到對現有資料的匯入匯出的操作,但是資料庫中表與表之間有很多外間關係,不能直接的按維護要求對資料進行操作,所有需要對這些外來鍵和觸發器臨時的禁用,然後在運算元據,完成操作後在啟用對應的外來鍵和觸發器,下面的指令碼就是提供對整個使用者物件的外來鍵和觸發器的禁用和啟用指令碼...