觸發器控制

2021-08-18 22:57:49 字數 1204 閱讀 1997

在目標庫上建立資料幫浦目錄

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...