触发器问题,如何找出所有更新过的字段
时间:2011-05-19
来源:互联网
以下实例,这个能够产生单个字段的变更日志,
drop trigger if exists trigger_goods_update;
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `ec_server`.`trigger_goods_update` AFTER UPDATE
ON `ec_server`.`ecs_goods`
FOR EACH ROW BEGIN
SET @update_fields ='' ;
IF new.goods_name!=old.goods_name THEN
SET @update_fields = CONCAT(@update_fields,'goods_name,');
END IF;
INSERT INTO `ecs_goods_update_log` (log_key_id,log_type,log_fields) VALUES(new.goods_id, 'update',@update_fields);
END$$
DELIMITER ;
但是我不想一个字段一个字段的写,有什么办法可以几行代码找出所有变动的字段,并添加到日志当中,核心问题就是怎么提取一个表的所有字段,并且循环比较new.字段==old.字段。。。。。。。。。。。
drop trigger if exists trigger_goods_update;
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER `ec_server`.`trigger_goods_update` AFTER UPDATE
ON `ec_server`.`ecs_goods`
FOR EACH ROW BEGIN
SET @update_fields ='' ;
IF new.goods_name!=old.goods_name THEN
SET @update_fields = CONCAT(@update_fields,'goods_name,');
END IF;
INSERT INTO `ecs_goods_update_log` (log_key_id,log_type,log_fields) VALUES(new.goods_id, 'update',@update_fields);
END$$
DELIMITER ;
但是我不想一个字段一个字段的写,有什么办法可以几行代码找出所有变动的字段,并添加到日志当中,核心问题就是怎么提取一个表的所有字段,并且循环比较new.字段==old.字段。。。。。。。。。。。
作者: conqweal 发布时间: 2011-05-19
不能 只能手写
作者: rucypli 发布时间: 2011-05-19
一定有办法,,new.goods_name,,怎么把后面.goods_name用变量代替。。。是否知道。。。
作者: conqweal 发布时间: 2011-05-19
除非打开通用日志,检查日志内容
作者: WWWWA 发布时间: 2011-05-19
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28