2016-08-13 195 views
-2

我在插入,工作之前触发了。现在它根本不开火。MySql触发器没有触发(完全)

复制表&触发到另一个数据库,它工作正常。

试图重新触发一切,并没有改变。

如果我看INFORMATION_SCHEMA,触发器表,我看到problematc触发不同于其它SQL_MODE值是NO_AUTO_VALUE_ON_ZERO相比,具有所有其他人:STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION。

如果这是所有原因?

+0

刚从头开始重新创建触发器,NO_AUTO_VALUE_ON_ZERO成为STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,所以它似乎不是问题的原因。没有变化,它不会起火。 –

+0

http://shrani.si/f/1U/11W/24T9L4ON/tmp.jpg –

+0

进一步:SELECT @@ sql_mode返回STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION有问题的服务器和服务器上的空字符串,其中一切正常 –

回答

0

的诀窍是:

#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" 

重新启动服务器。