Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > Mysql建表时报错invalid ON UPDATE clause for 'create_date' column

解决Mysql建表时报错invalid ON UPDATE clause for 'create_date' column

作者:BugCounter

这篇文章主要介绍了解决Mysql建表时报错invalid ON UPDATE clause for 'create_date' column问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Mysql建表时报错invalid ON UPDATE clause for 'create_date' column

这个错误是由于mysql 版本问题导致的

  `create_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_date` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

这是建表语句。MySQL 5.5 每个表只允许一个列的默认值根据时间戳生成时间

可以查看一下mysql的版本号:

show variables like 'innodb_version';

MySQL创建表易错

场景

提示:DDL - 表操作 - 创建:

通过 MySQL 中的SQL语句创建表遇到的各种报错

问题描述1

一开始是以为输入分号就可以成功创建,结果如下所示:

无论输入多少个按回车都是那样

mysql> create table tb_user(
    -> id int comment '编号',
    '> name varchar(50) comment `姓名`,
    '> age int comment `年龄`,
    '> gender varchar(1) comment `性别`,
    '> )
    '> comment `用户表`;
    '> ;
    '> ;
    '> ;
    '> ^C

原因分析1

可能此处以括号结尾,后面的注释不应该换行:

实际上通过查阅资料才发现

MySQL 对于 SQL 语句中的换行没有特别的要求,可以在任何需要的地方进行换行。

SQL 语句的可读性和美观性对于维护和调试都非常重要,因此建议适当地进行换行和缩进,以提高代码的可读性。

建议在以下情况下进行换行:

下面是一个使用换行和缩进的示例:

SELECT
    tb_user.*, tb_order.order_no, tb_order.create_time
FROM
    tb_user
JOIN
    tb_order
ON
    tb_user.id = tb_order.user_id
WHERE
    tb_user.age >= 18
GROUP BY
    tb_user.id
HAVING
    COUNT(tb_order.id) >= 10
ORDER BY
    tb_user.create_time DESC;

问题描述2

在当初不知道情的情况下,我把换行的问题解决了,后来还是发现没有成功创建

这个语句一旦写错就得Ctrl + C重新来,目前没有找到重新编辑上一行语句的方法。

mysql> create table tb_user(
    -> id int comment '编号`,
    '> name varchar(50) comment `姓名`,
    '> age int comment `年龄`,
    '> gender varchar(1) comment `性别`,
    '> ) comment `用户表`;
    '> ^C

原因分析2

可能是中英文的问题,以及符号运用的问题

这是大多数初学者容易忽略的地方,通常中英文切换后很难记得这回事

还有就是字符串只能用单引号或者双引号,这里用反引号习惯了就出问题了

最后一行字段没有逗号!

解决方案

改完之后的代码:

mysql> create table tb_user(
    -> id int comment '编号',
    -> name varchar(50) comment '姓名',
    -> age int comment '年龄',
    -> gender varchar(1) comment '性别'
    -> ) comment '用户表';
Query OK, 0 rows affected (0.02 sec)

此时终于创建成功了!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文