MySQL:一个表中的多个时间戳用于 DateAdded、DateUpdated

标签 mysql sql sql-timestamp

我想在一个表中为 DateAddedDateUpdated 列设置多个时间戳。我的定义不正确,其中 DateAdded 位于 '0000-00-00 00:00:00' 并且仅适用于 DateUpdated

`DateAdded` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`DateUpdated` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

当我尝试编辑为具有 2 个时间戳时,出现此错误:

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

请帮我解决问题。我可以看到这个问题是已知的,但我没有在任何地方看到解决方案。

最佳答案

我会替换无效的时间戳:

ALTER TABLE tab MODIFY `DateAdded` timestamp DEFAULT CURRENT_TIMESTAMP;
                                                     -- or any other valid value

DBFiddle Demo

关于MySQL:一个表中的多个时间戳用于 DateAdded、DateUpdated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51016643/

相关文章:

python - 在 Django 中一次查找最大项目的数量

sql - 使用函数的 SQL Server 查询速度非常慢

mysql - 更新字段按顺序从另一个表获取值

MySQL:查找 "same"数据

mysql - (phpmyadmin)(Mysql数据库)如何限制特定键值的插入次数?

mysql - 尝试在 MySQL 中划分 2 个单独的查询

postgresql - 如何使用 JOOQ 将 Postgres "infinity"插入时间戳字段?

sql - Oracle 中的时间戳转换为 YYYY-MM-DD HH :MM:SS format

mysql - 仅在 MariaDB 中插入时包含时间戳字段,并结合 'LOAD DATA LOCAL INFILE' 数据加载

php - auto_increment 中有非常奇怪的问题