- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
mysql版本5.7.8,需要創建新表,研發提供的sql文件,執行后報錯如下:
ERROR 1067 (42000): Invalid default value for 'deleted_at'
就猜測到時因為5.7版本的mysql默認的時間戳不允許輸入0000-00-00 00:00:00這種格式,之前碰到過類似問題,需要修改配置
查看了研發提供的sql文件,果真如此:
‘create_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '注冊時間',
# 解決
1. 不希望修改配置文件,通過修改sql_model就可以了的,這種對新建表生效
SELECT @@sql_mode;
可查看sql_model,其中NO_ZERO_IN_DATE,NO_ZERO_DATE就是導致5.7+版本無法輸入0的時間戳
NO_ZERO_IN_DATE:在嚴格模式下,不允許日期和月份為零
NO_ZERO_DATE:設置該值,mysql數據庫不允許插入零日期,插入零日期會拋出錯誤而不是警告。
2. 修改sql_model
SET @@sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
去掉上面兩個即可
3. 執行原來的sql文件,成功
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP