• Oracle批量執行sql語句之禁用所有表的外鍵

     更新時間:2016年01月23日 21:19:05   作者:_void  
    這篇文章主要介紹了Oracle批量執行sql語句之禁用所有表的外鍵的相關資料,需要的朋友可以參考下

    在轉移數據庫,進行數據導入的時候,遇到一件麻煩事,就是表間外鍵約束的存在,導致insert頻頻報錯,批量執行sql語句又是順序執行,沒辦法我只好手動輸入。

    然后輸入到一半靈光一閃,為什么不先把外鍵約束全部禁用先呢?

    于是我百度到以下資料:

    oracle 刪除(所有)約束 禁用(所有)約束 啟用(所有)約束

    執行以下sql生成的語句即可

    1刪除所有外鍵約束

    select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R' 

    2禁用所有外鍵約束

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

    3啟用所有外鍵約束

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

    在SQL Plus中輸入語句后,生成了很多語句,這些語句其實是沒執行的,復制下來執行一遍就好了。
    然后我們可以根據這個腳本一樣的sql語句進行拼裝,得到我們需要的語句:

    禁用所有外鍵約束:

    select 'ALTER TABLE "QIANHAI"."'||table_name||'" MODIFY CONSTRAINT "'||constraint_name||'" DISABLE;' from user_constraints where constraint_type='R' 

    啟用所有外鍵約束:

    select 'ALTER TABLE "QIANHAI"."'||table_name||'" MODIFY CONSTRAINT "'||constraint_name||'" ENABLE;' from user_constraints where constraint_type='R';

    關于Oracle批量執行sql語句之禁用所有表的外鍵的相關內容,就給大家介紹這么多,后續還會持續更新,感興趣的朋友請繼續關注腳本之家網站,謝謝!

    相關文章

    最新評論

    美丽人妻被按摩中出中文字幕