数据

当前位置:永利皇宫463登录 > 数据 > 【MySql】Mysql ERubiconRO纳瓦拉 1067: Invalid default va

【MySql】Mysql ERubiconRO纳瓦拉 1067: Invalid default va

来源:http://www.makebuLuo.com 作者:永利皇宫463登录 时间:2019-10-19 23:50

在给三个表增添字段的时候,溘然开掘会报三个date类型的字段的私下认可值错误,苦恼~

难点叙述:修改字段私下认可值时报错EEvoqueRO凯雷德 1067 (4贰仟): Invalid default value for 'phone'

多年来急需对业务的订单表张开分区,先在友好本机测验,在开立测量试验表就报错了:

因而逐个审查核对,原来是MySQL的配备难题,在wamp下,MySQL 5.7里是尚未设置 SQL_MODE 的。

标题由来:设置的暗中认可值不符合当下字段的项目

CREATE TABLE `test_order` (
    `ORDER_NUM` bigint(20) NOT NULL COMMENT '订单号',
    `CREATE_TIME` timestamp NULL DEFAULT '0000-00-00 00:00:00',
    KEY `IAC_ORDER_N1` (`ORDER_NUM`) USING BTREE,
    KEY `idx_create_time` (`CREATE_TIME`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT

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

1.my.ini文书中找到 [mysqld]

化解办法:好像化解不了……除非不设这么的私下认可值,或涂改字段类型

(对TIMESTAMP类型的子段若是不设置缺省值或未有标注not null时候在创设表时会报那些荒谬)

2.万少年老成未有SQL_MODE,就增进,有就修改一下

那是因为sql_mode中的NO_ZEROR_DATE导制的,在strict mode中不允许'0000-00-00'作为法定日期

sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

应用上面包车型客车命令查看sql_mode
业务库:

3.重启MySQL;

mysql>show variables like 'sql_mode';

Variable_name
sql_mode

本机测量检验:

Variable_name Value
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

将上边的NO_ZERO_DATE改为上边包车型客车ALLOW_INVALID_DATES

mysql> set sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

地方的安装是有时安装,在重新登入后,该装置又过来为NO_ZERO_DATE

本文由永利皇宫463登录发布于数据,转载请注明出处:【MySql】Mysql ERubiconRO纳瓦拉 1067: Invalid default va

关键词: