在目標庫上建立資料幫浦目錄
create directory dump_dir as '/oracle/ppp';
grant read,write on directory dump_dir to user;
在源庫上匯出資料:
expdp system/oracle directory=dump_dir dumpfile=user.dmp schemas=user logfile=user.log
匯出表結構:
impdp system/oracle directory=dump_dir dumpfile=user.dmp sqlfile=user.sql logfile=userimp.log
在目標庫上建立表
sql>@/oracle/ppp/user.sql
匯入資料前關閉約束和觸發器:
sql>set heading off
sql>select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints;
sql>alter table table_name disable constraint constraint_name;
sql>select 'alter trigger '||trigger_name||' disable;' from user_triggers;
sql>alter trigger trigger_name disable;
匯入資料:
export oracle_sid=sid
匯入資料後開啟約束和觸發器:
sql>set heading off
sql>select 'alter table '||table_name||' enable novalidate constraint '||constraint_name||';' from user_constraints;
sql>alter table table_name enable novalidate constraint constraint_name;
sql>select 'alter trigger '||trigger_name||' enable;' from user_triggers;
sql>alter trigger trigger_name enable;
連線應用測試,一切ok.
如何控制觸發器遞迴
背景a 表update 後,取b 表某列再次 update a表,這樣又觸發了a表的 update 觸發器,我的目的是只觸發一次,是否設定 nested triggers 選項關閉遞迴觸發器即可?分析 首先,必須清楚觸發器遞迴的定義,觸發器有兩種遞迴方式 1 直接遞迴 a表上的觸發器更改 插入 刪除...
如何控制觸發器遞迴
a 表update 後,取b 表某列再次 update a表,這樣又觸發了a表的 update 觸發器,我的目的是只觸發一次,是否設定 nested triggers 選項關閉遞迴觸發器即可?分析 首先,必須清楚觸發器遞迴的定義,觸發器有兩種遞迴方式 1 直接遞迴 a表上的觸發器更改 插入 刪除 更...
觸發器 mysql觸發器
觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...