【原由】mysql
在本地數據庫執行測試平臺數據庫結構文件data_struct.sql,執行建表語句相似以下:sql
CREATE TABLE `demo` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` longtext COLLATE utf8_bin, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
過程當中過程當中發現以下錯誤數據庫
ERROR 1067 (42000): Invalid default value for 'create_time'
【通過】測試
在google了緣由以後,又結合本身的狀況,發現了問題緣由。google
網友猜想的緣由有:spa
1.mysql配置中sql_mode設置的不對(第一反應也是這個),檢查本身的配置沒有發現問題code
2.mysql版本的緣由(問題的根因)blog
【結果】class
看到版本的緣由以後,對本身的mysql進行了版本檢查,發現測試平臺是5.7的版本,本身使用的是5.5版本。使用current_timestamp做爲datetime的默認值,只有在5.6以後的版本才支持。配置
【解決方案】
升級本地的數據庫版本。