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
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment '测试触发器';
CREATE TABLE test_log
(id
int(10) NOT NULL AUTO_INCREMENT,
`update_id` int(10) not null default 0 comment '修改id',
log_text
varchar(100) DEFAULT NULL,
PRIMARY KEY (id
),
key(update_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_trigger
for each row
begin
insert into test_log(update_id,log_text) values(NEW.id,concat(cast(NEW.age as char),'修改为:',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_text
1 2 30修改为:20