zoukankan      html  css  js  c++  java
  • Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

    错误描述

    在DBeaver执行DDL语句时报错:SQL 错误 [1293] [HY000]: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
    DDL语句如下:

    CREATE TABLE `etl_conf_d` (
      `jobName` varchar(128) NOT NULL,
      `jobNo` int(11) DEFAULT NULL,
      `jobDesc` varchar(128) DEFAULT NULL,
      `validFlg` varchar(1) DEFAULT NULL,
      `runFlg` varchar(1) DEFAULT NULL,
      `runStartTimestamp` TIMESTAMP ,
      `runEndTimestamp` TIMESTAMP,
      `finalEndTimestamp` TIMESTAMP,
      `queryMinute` int(11) NOT NULL DEFAULT 0,
      `etlStartTimestamp` TIMESTAMP ,
      `etlEndTimestamp` TIMESTAMP ,
      `createUser` varchar(128) DEFAULT NULL,
      `createTimestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      `evtUser` varchar(128) DEFAULT NULL,
      `evtTimestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`jobName`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    ;
    

    解决过程

    查阅发现是MySQL版本的问题。MySQL低版本不支持在一个表里面有两个TIMESTAMP类型。
    检查MySQL版本:

    C:Usersxuqy>mysql -V
    mysql  Ver 8.0.22 for Win64 on x86_64 (MySQL Community Server - GPL)
    

    高于5.5.x,可以支持两个Timestamp。但是DBeaver测试连接时,显示我的MySQLServer版本是5.5.28

    检查后我发现,我本地8.0.22版本的MySQL并没有安装成功,services中运行的还是5.5.28的旧版本。但是不知道为什么我使用mysql -V显示的是8.0.22

    解决方法

    1. 重新安装8.0.22版本的MySQL;
    2. 换DBeaver的连接,8.x.x版本的MySQL连接应该选择MySQL 8+而不是MySQL
  • 相关阅读:
    H5新增属性02
    h5新增属性
    javascript基础
    多列布局和弹性盒模型详解
    边框图片+盒子倒影
    CSS新增边框属性
    css3选择器
    css3基础
    h5新增-2
    h5新增
  • 原文地址:https://www.cnblogs.com/daheww/p/14460926.html
Copyright © 2011-2022 走看看