mysql数据库建表失败

问题描述:创建数据表提示失败


table DDL

CREATE TABLE `user` (
    `id` bigint(20) NOT NULL AUTO_INCREMENT,
    `user_id` bigint(20) NOT NULL,
    `username` varchar(64) COLLATE utf8mb4_general_ci NOT NULL,
    `password` varchar(64) COLLATE utf8mb4_general_ci NOT NULL,
    `email` varchar(64) COLLATE utf8mb4_general_ci,
    `gender` tinyint(4) NOT NULL DEFAULT '0',
    `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
    `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `idx_username` (`username`) USING BTREE,
    UNIQUE KEY `idx_user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

mysql 环境

MySQL Server version

5.5.27

在这里插入图片描述

报错信息

[2022-04-16 16:41:00] Connected
dev_db> use dev_db
[2022-04-16 16:41:00] completed in 6 ms
dev_db> CREATE TABLE `user` (
                                `id` bigint(20) NOT NULL AUTO_INCREMENT,
                                `user_id` bigint(20) NOT NULL,
                                `username` varchar(64) COLLATE utf8mb4_general_ci NOT NULL,
                                `password` varchar(64) COLLATE utf8mb4_general_ci NOT NULL,
                                `email` varchar(64) COLLATE utf8mb4_general_ci,
                                `gender` tinyint(4) NOT NULL DEFAULT '0',
                                `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
                                `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
                                PRIMARY KEY (`id`),
                                UNIQUE KEY `idx_username` (`username`) USING BTREE,
                                UNIQUE KEY `idx_user_id` (`user_id`) USING BTREE
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
[2022-04-16 16:41:00] [HY000][1293] Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
[2022-04-16 16:41:00] [HY000][1293] Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

在这里插入图片描述

原因分析:

mysql 5.5 只能有一个Timestamp,而我上面的sql语句中出现了两个,所以报错,而只要mysql5.6以上版本就可以了。


解决方案:

1、修改其中 一个 列的Timestamp 类型。比如修改为 datatime类型。

2、换一个高版本的mysql,推荐使用docker , 可以拉取不同版本的mysql镜像。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值