[Err] 1294 - Invalid ON UPDATE clause for 'comment_time' column【详细解决办法】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: [Err] 1294 - Invalid ON UPDATE clause for 'comment_time' column【详细解决办法】

今日,怂怂就为大家带来一篇mysql遇到 ON UPDATE clause 不能实现建表的问题解决;具有很好的参考价值,一起跟怂怂过来吧,如若对您有所帮助,别忘了在文章右上角点个赞哦。谢谢。


从高版本的mysql导数据到低版本,执行语句:


CREATE TABLE `tb_order_status` (

 `order_id` bigint(20) NOT NULL COMMENT '订单id',

 `status` int(1) DEFAULT NULL COMMENT '状态:1、未付款 2、已付款,未发货 3、已发货,未确认 4、交易成功 5、交易关闭 6、已评价',

 `create_time` datetime DEFAULT NULL COMMENT '订单创建时间',

 `payment_time` datetime DEFAULT NULL COMMENT '付款时间',

 `consign_time` datetime DEFAULT NULL COMMENT '发货时间',

 `end_time` datetime DEFAULT NULL COMMENT '交易完成时间',

 `close_time` datetime DEFAULT NULL COMMENT '交易关闭时间',

 `comment_time` datetime DEFAULT NULL  COMMENT '评价时间',

 PRIMARY KEY (`order_id`),

 KEY `status` (`status`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单状态表';


会报错:

[Err] 1294 - Invalid ON UPDATE clause for 'comment_time' column

---------------------


解决方式一【更新MySQL版本至5.6.31以上】:

可以查看下mysql版本号:

show variables like 'innodb_version';

18.jpg


即对于5.6.5之前的MySQL版本,不支持多条同时使用 DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT TIMESTAMP特性,使用mysql -v查了下我现在使用的mysql版本为5.5.56,即不支持多条同时使用。因此将mysql更新至5.6.31,问题解决。


解决方式二【使用触发器来替代】

ps:还是以上sql为例演示:

修改如下:

19.jpg


ps:当执行update操作是,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,它的值也会跟着更新为当前UPDATE操作时的时间,即为系统时间。


--------------------------------------拓展-------------------------------------

要想更为深入了解下ON UPDATE CURRENT_TIMESTAMP是怎么使用的,可以查看下以下这篇,值得学习。

timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
关系型数据库 MySQL
Mysql 建表时报错 invalid ON UPDATE clause for 'create_date' column
原文:Mysql 建表时报错 invalid ON UPDATE clause for 'create_date' column 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
3318 0
|
关系型数据库 MySQL 数据库
View ‘information_schema.SCHEMATA‘ references invalid table(s) or column(s) or function(s) or define
View ‘information_schema.SCHEMATA‘ references invalid table(s) or column(s) or function(s) or define
224 0
|
存储 关系型数据库 MySQL
超详细!Mysql错误1452 - Cannot add or update a child row: a foreign key constraint fails 原因及解决方法
超详细!Mysql错误1452 - Cannot add or update a child row: a foreign key constraint fails 原因及解决方法
3710 0
超详细!Mysql错误1452 - Cannot add or update a child row: a foreign key constraint fails 原因及解决方法
|
关系型数据库 MySQL 数据库
mysql插入表时报错ERROR 1067 (42000): Invalid default value for ‘end_time‘
mysql插入表时报错ERROR 1067 (42000): Invalid default value for ‘end_time‘
|
关系型数据库 MySQL
报错:Incorrect datetime value: '0000-00-00 00:00:00' for column 'login_time' at row 1
报错:Incorrect datetime value: '0000-00-00 00:00:00' for column 'login_time' at row 1
658 0
|
SQL 关系型数据库 MySQL
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT
|
SQL 关系型数据库 MySQL
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
1173 0
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
|
SQL Java 数据库连接
JPA异常:Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
JPA异常:Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
2030 0
|
安全
Error Code: 1175. You are using safe update mode and you tried to update a t
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/inforstack/article/details/79677217 在安全模式下,只能根据主键来做修改,所以使用非主键修改,那么将要解除安全模式,然后再执行操作。
1644 0