将我的mysql版本从5.6更新为5.7后,出现错误:
Incorect datetime value: 0000-00-00 00:00:00 for column 'create_time' at row 1
这是create_time的结构
`create_time` DATETIME DEFAULT '0000-00-00 00:00:00'
答案 0 :(得分:1)
确保您运行的是比版本5.7.7更新的当前MySQL 5.7版本,或禁用严格模式。 Versions 5.7.4 to 5.7.7 incorporated NO_ZERO_DATE
SQL mode into strict mode.
从MySQL 5.7.4开始,不推荐使用
ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
和NO_ZERO_IN_DATE
SQL模式。从MySQL 5.7.4到5.7.7,这些模式在明确命名时不执行任何操作。相反,它们的效果包含在严格SQL模式(STRICT_ALL_TABLES
或STRICT_TRANS_TABLES
)的效果中。 换句话说,严格模式在这些版本中的含义与严格模式加上ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
和NO_ZERO_IN_DATE
的5.7.4之前含义相同。通过包含
ERROR_FOR_DIVISION_BY_ZERO
,NO_ZERO_DATE
和NO_ZERO_IN_DATE
导致一些问题,MySQL 5.7.4更改为使严格模式更严格。例如,在具有严格模式但未启用NO_ZERO_DATE
的MySQL 5.6中,可以使用TIMESTAMP
定义DEFAULT '0000-00-00 00:00:00'
列。 在具有相同模式设置的MySQL 5.7.4中,严格模式包括无法使用NO_ZERO_DATE
定义TIMESTAMP
和DEFAULT '0000-00-00 00:00:00'
列的效果。这会导致复制如果CREATE TABLE
语句包含TIMESTAMP
列var fileManager = NSFileManager.defaultManager() var fileHandle: NSFileHandle @IBAction func submitForm(sender: AnyObject) { mySingleton.filename = mySingleton.filename + ".csv" let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] let filePath = documentsPath + mySingleton.filename if !fileManager.fileExistsAtPath(mySingleton.filename) { fileManager.createFileAtPath(filePath, contents: nil, attributes: nil) fileHandle = ... } }
,则会失败。