mysql 触发器 [Err] 1362 - Updating of NEW row is not allowed in after trigger
原创 crazywind 发表于:2018-07-09 15:49:42
  阅读 :1326   收藏   编辑

语句

在更新表test后更新修改时间

DELIMITER $
CREATE TRIGGER trigger_test_modify_t AFTER UPDATE ON test FOR EACH ROW
BEGIN

set NEW.modify_t = DATE_FORMAT(now(),'%Y%m%d%H%i%s');

end
$
DELIMITER ;

出错,提示

[SQL]
CREATE TRIGGER trigger_test_modify_t AFTER UPDATE ON test FOR EACH ROW
BEGIN

set NEW.modify_t = DATE_FORMAT(now(),'%Y%m%d%H%i%s');

end
;
[Err] 1362 - Updating of NEW row is not allowed in after trigger

解决

AFTER 该为 BEFORE

before与after区别:

  • before:(insert、update)可以对new进行修改,

  • after不能对new进行修改,两者都不能修改old数据。