mysql5.7 datetime 默认值为‘0000-00-00 00:00:00'值无法创建问题解决

来源:互联网 发布:在广州培训java哪里好 编辑:程序博客网 时间:2024/05/13 18:30

我数据库版本为5.7.16

新建表结构:

DROP TABLE IF EXISTS `yx_test`;CREATE TABLE `yx_test` (      `mobile` char(11) NOT NULL DEFAULT '' COMMENT '手机号',      `is_delete` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态,0.删除,1.正常',      `deleted_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '删除时间',      `created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',      `updated_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间') ENGINE=InnoDB AUTO_INCREMENT=10000043 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='测试表';

报错信息:

ERROR 1067 (42000): Invalid default value for 'deleted_at'

解决方案:

使用root登陆数据库

1、查看sql_mode:

select @@sql_mode;

获得结果:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2、NO_ZERO_IN_DATE,NO_ZERO_DATE是无法默认为‘0000-00-00 00:00:00’的根源,去掉之后再次新建表就可以了

SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

注:
NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零
NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。

测试新建表,ok。可以了。

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 卖家没货买家不退款怎么办 写作猫网络异常怎么办 淘宝差评太多怎么办 淘宝退货太多被拉黑怎么办 店铺售假扣2分怎么办 淘宝店被扣24分怎么办 实体店铺查封后怎么办 淘宝店铺封订单怎么办 淘宝店铺被扣分怎么办 淘宝账户被保护怎么办 k宝登录不了怎么办 手机淘宝看不到图片怎么办 淘宝拿到货退款怎么办 商家收货未退款怎么办 卖家发了货退款怎么办 淘宝退款货到了怎么办 退货退款不退货怎么办 换手机了淘宝怎么办 换了手机号淘宝怎么办 支付宝不能收款怎么办 换号码了淘宝怎么办 支付宝付款码打不开怎么办 苹果付款信息打不开怎么办 地税密码忘记了怎么办 网上开店没订单怎么办 qq群人员上限怎么办 糖果y9桌面锁定怎么办 手机桌面乱了怎么办 网页内容不能复制怎么办 网页不能复制粘贴怎么办 闲鱼收到假货怎么办 微博账户锁定怎么办 闲鱼东西被下架怎么办 无锡梅村社保卡怎么办 无锡梅村医保卡怎么办 常州不要的旧家具怎么办 闲退款不退货怎么办 小白摄像机离线怎么办 oppo手机死机了怎么办 手机关机卡住了怎么办 手机死机无法关机怎么办