gpt4 book ai didi

mysql - 如何正确更改表默认值

转载 作者:行者123 更新时间:2023-11-29 01:49:17 26 4
gpt4 key购买 nike

我不明白为什么我的 alter table 查询会抛出错误。目前,这是一个默认值为 NULL 的 (DATETIME) 列。

我希望对其进行更改,以便在更新行时自动填充日期时间值。我正在尝试编写一个 alter 语句,但我无法弄清楚为什么我的语句会抛出错误。

我的修改声明

ALTER TABLE `mydb`.`orders` CHANGE COLUMN `date_u` DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP '{}';

这是我遇到的错误

16:28:34    ALTER TABLE `mydb`.`orders` CHANGE COLUMN `date_u` DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP '{}'  Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP '{}'' at line 1  0.00041 sec

我正在使用 MySQL 5.7 版

最佳答案

CHANGE COLUMN 更改用于当您可能想要更改列的名称时,并要求您在旧名称之后提供新名称。如果您不重命名该列,则必须提供两次名称。您的命令尝试将 date_u 列重命名为 DATETIME,但它在 NULL 关键字之前缺少数据类型。

改用MODIFY COLUMN。它是一样的,但不允许重命名,因此不需要您提供两次列名。

ALTER TABLE `mydb`.`orders` MODIFY COLUMN `date_u` DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP;

我也不确定你在末尾使用 '{}' 的目的是什么,但我认为它也不是有效的语法,所以我将其删除。

关于mysql - 如何正确更改表默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52236382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com