2015-07-19 64 views
1

,因为我升级我的MySQL数据库到5.7,我有问题,当我尝试设置日期时间列0000-00-00 00:00:00的MySQL 5.7中存在的问题与DATETIME =“0000-00-00 00:00:00”

UPDATE users 
SET updateTime = '0000-00-00 00:00:00' 
WHERE id = 123; 

// #1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'updateTime ' at row 1 

如果我用UPDATE IGNORE [...]运行查询,它工作正常。

未设置SQL模式NO_ZERO_DATE。有什么设置可以解决这个问题吗?

我真的讨厌添加IGNORE到应用程序中的每个查询。

+0

你为什么要这么做?如果你需要一个空的日期 - 使字段可以为空并且使用NULL作为值 –

+0

谢谢你的回复。该字段已被设置为NULL。改变它会导致一些副作用(更多的bug),这就是为什么我需要找到一个修补程序。重新开始工作后,我必须找到一个“最佳实践解决方案”。 – Tream

+0

“它已经设置为NULL”我的意思是,可以设置NULL。我不确定,如果这不会导致许多新问题。我现在正在检查这个。 – Tream

回答

0

我在更新Ubuntu 14.04的时候遇到了同样的问题14.4 repo mysql 5.5.6?到MySQL 5.7.9

我使用perl脚本做几LOAD DATA INFILE其中的日期有时0000-00-00 00:00:00。我还得到了DBO跟踪中的错误1292,这是通过从optionsfile中的sql模式中删除STRICT_TRANS_TABLES来解决的。