【问题标题】:DEFAULT CURRENT_TIMESTAMP error in mysql while alter the tablemysql 中的 DEFAULT CURRENT_TIMESTAMP 错误,同时更改表
【发布时间】:2018-06-01 05:11:02
【问题描述】:

在mysql中执行任何查询时都会出错,即使表是空的。

ALTER TABLE test_table ALTER COLUMN CREATED_DATE SET DEFAULT CURRENT_TIMESTAMP;

ALTER TABLE test_table ADD COLUMN CREATED_DATE_temp DEFAULT CURRENT_TIMESTAMP;

错误是:

类别时间戳持续时间消息行位置错误 01-06-2018 10:35:57 0:00:00.000 MySQL 数据库错误:你有一个错误 SQL 语法;检查与您的 MySQL 服务器相对应的手册 在“DEFAULT CURRENT_TIMESTAMP”附近使用正确语法的版本 在第 1 9 0 行

有什么帮助吗?

【问题讨论】:

  • 您打算通过添加CURRENT_TIMESTAMP 作为默认值来修改CREATED_DATE 列?

标签: mysql


【解决方案1】:

您需要遵循正确的语法来添加/修改列

ALTER TABLE `test_table` CHANGE `CREATED_DATE` `CREATED_DATE` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL; 
ALTER TABLE `test_table` ADD COLUMN `CREATED_DATE_temp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP NULL;

Demo

【讨论】:

    【解决方案2】:

    您好,您可以运行以下命令:

    ALTER TABLE test_table ADD COLUMN CREATED_DATE_temp 时间戳 DEFAULT now();

    【讨论】:

    • 我收到此错误:类别时间戳持续时间消息行位置错误 01-06-2018 11:34:37 0:00:00.000 MySQL 数据库错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 7 0 行的“now()”附近使用正确的语法,所以我使用了以下答案中给出的建议
    【解决方案3】:

    尝试使用TIMESTAMP进行如下查询:

    现在可以使用DATETIME 字段实现此目的,因为MySQL 5.6.5 但是你可以用TIMESTAMP来做到这一点

    ALTER TABLE `test_table` ADD COLUMN `CREATED_DATE_temp` TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
    

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多