gpt4 book ai didi

mysql - 为什么 MySQL 不让我删除属性 "on update CURRENT_TIMESTAMP"?

转载 作者:IT老高 更新时间:2023-10-29 00:16:16 27 4
gpt4 key购买 nike

我有一个包含两个时间戳字段的表。我只是用名称和类型TIMESTAMP 定义了它们,但由于某种原因,MySQL 自动将其中一个设置为默认值和属性on update CURRENT_TIMESTAMP。我计划在这两个字段中都没有默认值,但是其中一个字段称为“date_updated”,所以我想我可以将提到的属性设置为该字段。

不幸的是,它是使用 on update CURRENT_TIMESTAMP 属性设置的字段“date_created”,无论我做什么,MySQL 都不会让我删除它。

我已尝试编辑“date_created”字段并删除该属性。单击保存时,该属性又回来了。我还尝试选择这两个字段,从其中一个字段中删除属性并将其设置在另一个字段上。它给了我错误 #1293 - Incorrect table definition;在 DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列 突然间,值上的两个属性列都设置为 on update CURRENT_TIMESTAMP 结果:

Error
SQL query:

ALTER TABLE `pages` CHANGE `date_created` `date_created` TIMESTAMP NOT NULL ,
CHANGE `date_updated` `date_updated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL

MySQL said:

#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

我真的必须以正确的顺序重新创建这两个列来解决这个问题吗?

我想知道如何正确解决这个问题,以供将来引用。

谢谢


现在我也试着跑了

ALTER TABLE pages
CHANGE date_created
date_created TIMESTAMP NOT NULL

最佳答案

您应该指定DEFAULT CURRENT_TIMESTAMP(或DEFAULT 0)

ALTER TABLE pages CHANGE date_created date_created TIMESTAMP NOT NULL DEFAULT 0,
CHANGE `date_updated` `date_updated` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL

关于mysql - 为什么 MySQL 不让我删除属性 "on update CURRENT_TIMESTAMP"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5126374/

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