报错版本:mysql-5.7.35

1、报错完整提示信息;

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

2、原因:

使用source命令迁移activiti表数据sql的时候,其中act_evt_log表create报错,完整的create语句:

CREATE TABLE `ACT_EVT_LOG`  (
`LOG_NR_` bigint(20) NOT NULL AUTO_INCREMENT,
`TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`TIME_STAMP_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`DATA_` longblob,
`LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
`LOCK_TIME_` timestamp(3) DEFAULT NULL,
`IS_PROCESSED_` tinyint(4) DEFAULT 0,
PRIMARY KEY (`LOG_NR_`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;

可以看到报错的字段LOCK_TIME_为timestamp类型,且默认为null,因为是mysql5.7.x版本,会有一个严格模式,而在此模式下默认是不允许设置日期时间的值为全0值的。

3、解决:

调整sql_mode、explicit_defaults_for_timestamp两个参数的值。(下面步骤是临时调整,mysql重启会失效,如果需要永久调整的话得将配置写在my.cnf中,然后重启mysql让其生效)

步骤如下:

# 1.查询sql_mode的值
mysql> select @@sql_mode; # 2.将查询的值去掉NO_ZERO_IN_DATE,NO_ZERO_DATE,将剩余的值重新赋给sql_mode
mysql> set global sql_mode = '修改后的值'; # 3.同时MySQL5.7.x的explicit_defaults_for_timestamp默认值为OFF,这与sql_mode的NO_ZERO_DATE也是相冲突的,需要修改为ON。
mysql> show variables like 'explicit_defaults_for_timestamp';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| explicit_defaults_for_timestamp | OFF |
+---------------------------------+-------+
1 row in set (0.00 sec)
mysql> set @@explicit_defaults_for_timestamp = 1;
Query OK, 0 rows affected (0.00 sec)

ERROR 1067 (42000): Invalid default value for 'xxx字段'的更多相关文章

  1. ERROR 1067 (42000): Invalid default value for 'created_time'【转】

    执行表增加字段语句报错 mysql> ALTER TABLE ha_question ADD COLUMN question_number INT; ERROR (): Invalid defa ...

  2. mysql错误总结-ERROR 1067 (42000): Invalid default value for TIMESTAMP

    1. ERROR 1067 (42000): Invalid default value for 'FAILD_TIME'   (对TIMESTAMP  类型的子段如果不设置缺省值或没有标志not n ...

  3. MySQL错误:ERROR 1067 (42000): Invalid default value for 'timestamp_field'

    数据库报错   ERROR 1067 (42000): Invalid default value for 'start_time' 是因为数据库的配置有问题: 可以看到  NO_ZERO_IN_DA ...

  4. MySQL:ERROR 1067 (42000): Invalid default value for 'end_time'

    © 版权声明:本文为博主原创文章,转载请注明出处 1.错误截图 2.错误分析 表中的第一个TIMESTAMP列(如果未声明为NULL或显示DEFAULT或ON UPDATE子句)将自动分配DEFAUL ...

  5. 解决:ERROR 1067 (42000): Invalid default value for 'login_time'

    如图操作数据表的时候出现上图的错误 问题的原因就是出在timestamp的默认值不正确,针对以上问题的解决方案是:修改默认值为当前值. sql语言代码: Alter table user modify ...

  6. ERROR 1067 (42000): Invalid default value for 'time'

    修改sql_mode,去掉NO_ZERO_IN_DATE,NO_ZERO_DATE这两个参数 查看 root@:: [hmda]> show variables like 'sql_mode'; ...

  7. MySQL5.7导入数据报错ERROR 1067 (42000) at line 1015: Invalid default value for 'service_time'

    解决办法: 修改my.cnf,[mysqld] 下面添加sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_U ...

  8. MySQL 5.7 Invalid default value for 'CREATE_TIME'报错的解决方法

    出处:http://blog.itpub.net/15498/viewspace-2136006/ 由于数据库的升级,今天在执行从MySQL 5.6导出来的SQL文件时报错: mysql> so ...

  9. mysql error 1067 invalid default timestamp

    问题 MySQL 5.7版本,在创建数据表时,使用以下语句定义一个字段: `update_time` timestamp DEFAULT '0000-00-00 00:00:00' ON UPDATE ...

  10. Mysql ERROR 1067: Invalid default value for 字段

    问题: //今天把一个数据库的sql文件导入到另一个数据库出现以下异常: Mysql ERROR 1067: Invalid default value for 字段 //原因是因为之前导出数据里面有 ...

随机推荐

  1. 洛谷 P4454 [CQOI2018]破解D-H协议

    题目 https://www.luogu.com.cn/problem/P4454 杂题乱做ing... 思路 首先我们把式子列一下: \(g^a\equiv A(mod P)\) \(g^b\equ ...

  2. LaTex【六】表格排版—表格标题位置

    LaTex中表格排版--表格描述位置调整 LaTex模板大多默认将表格描述置于表格下方,可通过修改 \caption 的位置调整. 1. 位于表格下方(默认) \begin{table}[h] \be ...

  3. go读取excel的内容

    import "github.com/360EntSecGroup-Skylar/excelize" func SimulationDataHandler(){ f, err := ...

  4. laravel ajax 实现省市区三级联动

    首先将省市区的数据存储到数据库中 sql文件地址:http://m.caomeipi.com/ html <select name="province" style=&quo ...

  5. QTreeWidget CSS样式

    QTreeWidget{ font: 13pt "楷体"; color: rgb(26, 202, 255); border:1px solid rgb(170, 170, 127 ...

  6. elm上传图片,只能上传一张,隐藏+上传框

    效果: 上传后,隐藏+号,禁止继续上传: 移除当前已上传的后,重新显示+号,可以继续上传: 代码: css : 隐藏上传的 + 号 变量: 注: 利用 hideUpload 控制 + 号的css   ...

  7. 有关插槽中scope的问题

    暂时不理解

  8. mac大航海时代4

    mac大航海时代4.dmg 下载安装即可 https://590m.com/f/28636472-500476378-c957e8 (访问密码:7410)

  9. 【BOOK】Ajax数据爬取

    Requests获取原始HTML文档,Ajax加载和JavaScript处理的数据无法获得 一.Ajax Ajax-异步的JavaScript和XML Ajax请求页面更新: 1. 发送请求 2. 解 ...

  10. 简单a+b

    1 # include <stdio.h> 2 3 /*输入两个整数a和b,计算a+b的和 4 注意此题是多组测试数据 */ 5 6 // 我的解法 7 void main(){ 8 in ...