我想在触发当前行更新后更新两列。 endtime和starttime是日期时间类型。持续时间是整数,它将表示秒数。 Sequel Pro告诉我“[查询1中的错误]您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,在第5行''附近使用正确的语法 执行停止!我的sql触发器,语法错误
CREATE TRIGGER `end_time_update` AFTER UPDATE ON `mytable`
FOR EACH ROW
BEGIN
UPDATE mytable
set endtime = now(), duration = TIMESTAMPDIFF(SECOND, starttime, endtime)
where id = new.id;
END;
创建触发器后,任何更新失败: 无法更新存储的函数/触发器中的'mytable'表,因为它已被调用此存储的函数/触发器的语句使用。 – michael
您不能在触发器中的同一张表上进行更新。这将创建一个无限循环。但是你可以使用'NEW'来引用当前记录来修改它。我更新了答案 –
juergen,我已经使用你的更新答案,但现在续集亲告诉我:更新的新行不允许在触发后 – michael