CREATE TRIGGER `trigger_update_og_jobsequence` AFTER UPDATE ON `og_jobsequence` FOR EACH ROW if new.name <> old.name then
update og_department_position set sequence_name = new.name where organization_id = new.organization_id and sequence_id = new.id;
update og_position set sequence_name = new.name where organization_id = new.organization_id and sequence_id = new.id ;
end if
上面这个触发器, 对og_department_position表更新时,就报标题的错误,如果注释掉就没有问题。
og_department_position与og_position表的结构基本相同,就是多了几个字段。
仔细检查后,没有发现缺少字段的问题,让我百思不得其解。
对比两个表的异同,后来想到og_department_position是og_postion表复制粘贴后修改的,问题是不是出在这里呢?
将og_department_position重命名,新建一个og_department_position,再试触发器,就没有问题了。
以上可能是mysql的一个bug吧。
版本