【问题标题】:MySql trigger not firing (At all)MySql 触发器未触发(完全)
【发布时间】:2016-08-13 12:35:25
【问题描述】:

我在插入之前有触发器,工作。现在它根本不会触发。

将表和触发器复制到另一个数据库,它可以正常工作。

尝试全部重新创建触发器,但没有任何变化。

如果我查看 information_schema, triggers 表,我发现 issueatc 触发器与 SQL_MODE 值的其他触发器不同,该值是 NO_AUTO_VALUE_ON_ZERO,与所有其他触发器相比:STRICT_TRANS_TABLES、NO_AUTO_CREATE_USER、NO_ENGINE_SUBSTITUTION。

如果这就是原因?

【问题讨论】:

  • 刚刚从头开始重新创建了那个触发器,NO_AUTO_VALUE_ON_ZERO 变成了 STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,所以看起来这不是问题的原因。没有变化,它不会触发。
  • 进一步:SELECT @@sql_mode 在有问题的服务器上返回 STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 并在一切正常的服务器上返回空字符串

标签: mysql triggers


【解决方案1】:

诀窍是:

#Set the SQL mode to strict
#comented, coz strict blocks insert althought key field is filled on before insert trigger
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

重启服务器。

【讨论】:

    猜你喜欢
    • 2014-10-03
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多