触发器问题,如何找出所有更新过的字段

以下实例,这个能够产生单个字段的变更日志,
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