在前乙個部落格中提到了在資料同步的時候,在各站點需要建立各操作表的觸發器,在執行增刪改的時候,觸發器的任務是將其中操作的sql語句拼接成字串,並儲存在表synchro_tb_operate_log中,如果觸發器執行出現異常,則將其異常資訊儲存在另乙個表中:synchro_data_excep_log,其中
synchro_tb_operate_log欄位資訊:主鍵id、拼接的sql語句(其中包含主鍵id和地區**)、是否完成同步(預設為0未完成)、建立時間
synchro_data_excep_log欄位資訊:主鍵id、觸發器異常名稱、觸發器異常資訊、觸發器異常出現的時間
下面是建立item_rec**,也可以讓我們來學習一下建立觸發器相關的語法和知識:
create or replace
trigger "admin"."trigger_item_rec"
after insert or update or delete
on item_rec for each row
/** head
* @name 專案記錄表觸發器
* @description 變更事件,形成ddl語句插入同步表中
* @version 1.0.0
* @author tang
* @create-date 2014-07-01
*/declare
v_sql nvarchar2(3000); --臨時存放sql
v_zdcode varchar2(30):='08052'; --站點**
v_exception varchar2(500);
begin
v_sql := null;
case when inserting then--插入資料
v_sql := 'insert into item_rec('||
'id,proteamname,py,proid,'||
'jctype,workflag,zxflag,jwdcode)'||
'values('''||
:new.id||''','''||replace(:new.proteamname,'''','')||''','''||:new.py||''','''||:new.proid||''','''||
:new.jctype||''','''||:new.workflag||''','''||:new.zxflag||''','''||v_jwdcode||''')';
when updating then--更新資料
v_sql := 'update item_rec set '||
'proteamname='''||replace(:new.proteamname,'''','')||''''||
',py='''||:new.py||''''||
',proid='''||:new.proid||''''||
',jctype='''||:new.jctype||''''||
',workflag='''||:new.workflag||''''||
',zxflag='''||:new.zxflag||''''||
' where '||
'id='||:old.id||' and jwdcode='''||v_jwdcode||'''';
when deleting then--刪除資料
v_sql := 'delete from item_rec t where t.id='||:old.id||' and t.jwdcode='''||v_jwdcode||'''';
end case;
if v_sql is not null then--如果v_sql不為空,則將相應資訊插入到synchro_tb_operate_log表中
insert into
synchro_tb_operate_log(sd_record_id,sd_record_sql,sd_flag,create_time)
values(seq_synchro_data.nextval,v_sql,0,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
end if;
exception
when others then--如果執行過程**現異常,則將異常資訊插入到synchro_data_excep_log表中
v_exception := substr(sqlcode||'---'||sqlerrm, 1, 500);
insert into synchro_data_excep_log
(id,trigger_name,exception_info,exception_time)
values
(sys_guid(),'trigger_dict_proteam',v_exception,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'));
end trigger_item_rec;
資料同步之各站點同步表觸發器建立
在前乙個部落格中提到了在資料同步的時候,在各站點需要建立各操作表的觸發器,在執行增刪改的時候,觸發器的任務是將其中操作的sql語句拼接成字串,並儲存在表synchro tb operate log中,如果觸發器執行出現異常,則將其異常資訊儲存在另乙個表中 synchro data excep log...
MySQL觸發器實現表資料同步
其中old表示tab2 被動觸發 new表示tab1 主動觸發,外部應用程式在此表裡執行insert語句 1 插入 在乙個表裡新增一條記錄,另乙個表也新增一條記錄 drop table if exists tab1 create table tab1 tab1 id varchar 11 drop ...
mysql用觸發器同步表
一 先複製表 create table tytj select from tongji where user 0 and date 2016 09 26 or date 2016 09 27 二 建立插入資料時的 觸發器 在phpmyadmin 執行時記得要修改語句定界符為 create trigg...