sql-mode引发的问题

今天在执行一段mysq插入时,发现一直报错。

定位发现是其中有个字段为datetime,设置为空值。

但是,奇怪的是我在另一台服务器上执行时完全正确,甚至都没有Warning。

我一开始怀疑是mysql版本问题,但是我的是5.1.30,好的那台是5.1.33。版本基本一样。

我开始觉得可能是mysql的配置问题,最终,我在数据库配置里找到sql-mode,上网查询了下,果然是这个设置的问题。

5.0之后的版本,mysql默认开启了sql-mode,我的配置为:

#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

我把它改为:sql-mode=""

重启mysql,执行刚才的sql语句,发现一切正常了。

 

关于sql-mode可以访问官方网站:

http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#server-sql-mode

 

 

 

 

 

博客分类: 
Total votes: 1310

添加新评论