84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
mysql 的触发器的问题,我想写一个触发器,用来监控table1的price字段,或者监控table1的多个字段,当这些个字段发生改变的时候,在table_log1总记录该条记录的改变之前的值与改变之后的值,就是一个改变日志!求方法
光阴似箭催人老,日月如移越少年。
-- 1建表CREATE TABLE test_update_trigger (id int(10) NOT NULL AUTO_INCREMENT,age varchar(10) DEFAULT NULL, PRIMARY KEY (id CREATE TABLE test_log
-- 1建表CREATE TABLE test_update_trigger (id int(10) NOT NULL AUTO_INCREMENT,age varchar(10) DEFAULT NULL, PRIMARY KEY (id
test_update_trigger
id
age
test_log
test_log int(10) NOT NULL AUTO_INCREMENT,
`update_id` int(10) not null default 0 comment '修改id',
log_text varchar(100) DEFAULT NULL, PRIMARY KEY (log_text), key(update_id) id) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment '日誌'; -- 2插入資料insert into test_update_trigger values(1,10),(2,20); -- 3設定觸發器 create trigger tri_test_update after update on test_update_triggerfor each row begin insert into test_log(update_id,,,v) value. ,'修改為:',cast(OLD.age as char)));end -- 4修改update test_update_trigger set age=30 where id=2; -- 5查詢結果select * from test_log; id update_id log_text1 2 30修改為:20
PRIMARY KEY (log_text),
log_text
key(update_id)
-- 2插入資料
-- 3設定觸發器
create trigger tri_test_update
for each row begin insert into test_log(update_id,,,v) value. ,'修改為:',cast(OLD.age as char)));end -- 4修改
-- 5查詢結果
id update_id log_text
(-- 1建表
CREATE TABLE
test_update_trigger
(id
int(10) NOT NULL AUTO_INCREMENT,age
varchar(10) DEFAULT NULL,PRIMARY KEY (id
CREATE TABLE
test_log
test_log
int(10) NOT NULL AUTO_INCREMENT,id
log_text varchar(100) DEFAULT NULL,
select * from test_log;
1 2 30修改為:20
PRIMARY KEY (
log_text
),id
) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment '日誌';-- 2插入資料
insert into test_update_trigger values(1,10),(2,20);-- 3設定觸發器
create trigger tri_test_update
after update on test_update_triggerfor each row
update test_update_trigger set age=30 where id=2;begin
insert into test_log(update_id,,,v) value. ,'修改為:',cast(OLD.age as char)));
end
-- 4修改
-- 5查詢結果
id update_id log_text