- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機構(gòu):新網(wǎng)數(shù)碼
mysql版本5.7.8,需要創(chuàng)建新表,研發(fā)提供的sql文件,執(zhí)行后報錯如下:
ERROR 1067 (42000): Invalid default value for 'deleted_at'
就猜測到時因為5.7版本的mysql默認(rèn)的時間戳不允許輸入0000-00-00 00:00:00這種格式,之前碰到過類似問題,需要修改配置
查看了研發(fā)提供的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就是導(dǎo)致5.7+版本無法輸入0的時間戳
NO_ZERO_IN_DATE:在嚴(yán)格模式下,不允許日期和月份為零
NO_ZERO_DATE:設(shè)置該值,mysql數(shù)據(jù)庫不允許插入零日期,插入零日期會拋出錯誤而不是警告。
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. 執(zhí)行原來的sql文件,成功
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP