【发布时间】: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 并在一切正常的服务器上返回空字符串