【问题标题】:MySQL trigger not working. What could be the issue?MySQL 触发器不起作用。可能是什么问题?
【发布时间】:2015-07-07 12:33:14
【问题描述】:

插入另一个表后,我需要更新现有表。这就是我所拥有的。

DELIMITER $$
CREATE TRIGGER `some_trigger`
AFTER INSERT ON `old_table`
FOR EACH ROW BEGIN
UPDATE `new_table` set `some_column` = new.`column`
WHERE `new_table`.id = new.id
END $$
DELIMITER;

触发器定义成功执行并且触发器存在 SQL_MODE - NO_ENGINE_SUBSTITUTION 定义者——root@%

这有什么可怕的问题吗?

【问题讨论】:

  • 是否有任何错误或只是没有更新行?
  • @AmanAggarwal - 没有错误!只是不更新​​行。
  • 哪个表退出条目??
  • 检查 new_table 中是否存在 new.id
  • @AmanAggarwal - 是的,它存在于 new_table 中。这就是整个问题的原因!

标签: mysql sql stored-procedures triggers


【解决方案1】:

您能否确认 new.id 即在 old_table 插入时生成的 id 也存在于新表中? 因为可能的原因可能是新表 new.id 在 old_table 插入时不存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-14
    • 2017-04-22
    • 2019-01-17
    • 2012-09-04
    • 2013-04-26
    • 2013-12-06
    • 1970-01-01
    相关资源
    最近更新 更多