我有一个令人困惑的问题。 我正在使用5.6.12社区版本。MySQL:INSERT INTO ... ON DUPLICATE KEY UPDATE不会触发AFTER UPDATE触发器
我有一个UPDATE触发器后,该工作正常,当表被调用例如
UPDATE test_table SET TestVariable = 2 WHERE TestIndex = 2;
但是当我使用
INSERT INTO test_table (TestIndex,TestVariable) VALUES (2,3) ON DUPLICATE KEY UPDATE TestVariable = 3;
的UPDATE触发器不是“触发”。
当然,这是一个沉重简化的情况,并没有任何与我当前的代码。我还没有找到关于这方面的很多信息。在我看来,一个DUPLICTE KEY的UPDATE是一个普通的UPDATE,应该调用我的触发器。
有没有人提出了类似意见,或能向我解释,为什么MySQL是表现这种方式,或向我保证,我必须在我的设置有一定的错误,因为它应该工作?
我不需要回答暗示,我不应该使用INSERT INTO ... ON DUPLICTE KEY ......,因为 一)那不是问题 和 B)我不能很容易地修改业务应用我目前正在努力。
非常感谢你的帮助
它会建议(Mihai)更新部分在IODKU上失败。因此,不要责怪更新触发器,而应关注IODKU故障或潜在故障。这意味着你的更新从来没有发生过,而是不需要插入 – Drew
所以,你正专注于错误的东西首先,你还没有表明IODKU甚至工程(基于一个独特的密钥冲突) – Drew
对不起,我已经忘记了那部分。更新发生。这不是问题。但你会同意,它应该引发? – TurmDrummer