1:源表資料修改時將修改的資料插入臨時表,標記欄位為修改
2:源表資料刪除時將刪除資料插入臨時表,編輯欄位為刪除
3:源表資料新增時將新增資料插入臨時表,標記欄位為新增
一:定義臨時表字段
1:檢視源資料testb表
-------------如何修改mysql已經建好表的編碼------------------------------
alter table 表名 default character set utf8 collate utf8_general_ci;
2:建立第乙個觸發器---插入觸發器
create trigger tri_userc_insert after insert
on `usera` for each row
begin
insert into userc(idc,namec,agec,flogs,flog_time) select id,name,age,'插入',now() from usera where id not in (select idc from `userc`);
end
3:建立第二個觸發器---更新觸發器
create trigger tri_userc after update
on `usera` for each row
begin
set @point=(select name from `usera` where id = old.id );
set @point02=(select age from `usera` where id = old.id );
if @point != old.name then
update `userc` set namec=@point where idc=old.id;
update `userc` set flogs='更新' where idc=old.id;
update `userc` set flog_time=now() where idc=old.id;
end if;
if @point02 != old.age then
update `userc` set agec=@point02 where idc=old.id;
update `userc` set flogs='更新' where idc=old.id;
update `userc` set flog_time=now() where idc=old.id;
end if;
end
4:建立第三個觸發器---刪除觸發器
create trigger tri_userc_delete after delete
on `usera` for each row
begin
update userc set flogs = '刪除' where idc not in (select id from `usera`);
update userc set flog_time = now() where idc not in (select id from `usera`);
end
5:建表語句(a表)
create table `usera` (
`id` int(10) not null,
`name` varchar(50) default null,
`age` int(3) default null,
primary key (`id`)
) engine=innodb default charset=utf8;
6:建表語句(c表)
create table `userc` (
`idc` int(255) not null,
`namec` varchar(255) default null,
`agec` int(255) default null,
`flogs` varchar(255) default null,
`flog_time` datetime default null
) engine=innodb default charset=utf8;
MySQL 觸發器增刪改查基本操作
觸發器是與表有關的資料庫物件,指在insert updateldelete之前或之後,觸發並執行觸發器中定義的sql語句集合。觸發器的這種特性可以協助應用在資料庫端確保資料的完整性,日誌記錄,資料校驗等操作。大約是機關 觸發器型別 我們可以使用old,new 來獲取被修改的物件和修改後的物件 型別o...
oracle觸發器中增刪改查本表
oracle觸發器中增刪改查本表 1 只有before insert觸發器中才可以查詢或更新本表 create or replace trigger tri test ins before insert on test for each row declare v cnt integer begin...
增刪改的觸發器寫入日誌
觸發器的模型 格式 create trigger 給該觸發器起的名子 on 觸發器基於的是哪個表 after 在那種情況下開始觸發 insert delete update as begin 要執行的語句 可以建立乙個臨時表 insert into 給臨時表其的表名 values 寫入要編寫的字段 ...