是否可以将字段设置为时间戳,但在更新为当前时间戳时不能更改?
我正在尝试使用phpMyAdmin这样做,它不允许我删除默认的on update CURRENT_TIMESTAMP
请参阅此问题和答案:Support user time zones
我正在尝试使用TIMESTAMP,因为它可以让我轻松地使用时区。
更新同一行时是否无法保持该字段中的数据完好无损?
答案 0 :(得分:1)
这是TIMESTAMP的行为。这可能会令人困惑。阅读this以完成它。或者考虑使用DATETIME。
答案 1 :(得分:1)
服务器允许DEFAULT
和ON UPDATE
的任意组合,如果phpMyAdmin不允许你设置它,那么它可能是phpMyAdmin中的一个错误。无论如何,重要的是要注意时间戳列是在mysql中专门处理的,所以如果你的表中有多个这种类型,很可能它不会像你期望的那样工作。
来自mysql docs:
在CREATE TABLE语句中,可以通过以下任何方式声明第一个TIMESTAMP列:
答案 2 :(得分:0)
使用命令界面。 看起来您必须在表创建时指定“DEFAULT CURRENT_TIMESTAMP”属性才能获得该行为。 documentation here.