时间戳更新问题


Timestamp update issue

我有一个MySQL表用于猜测匹配,当任何用户猜测时,该表会采用该猜测的当前时间戳。比赛结束后,表格将更新比赛结果字段。我的问题是,当表更新结果时,它会更新时间戳,以及我如何使用MySQL或PHP停止对时间戳的更改?我只想更改结果字段,我的查询不包括时间戳,但即使它正在更新。我的表包含:

match_id, timestamp, result, guess

这是我的查询:

 UPDATE guesses SET result = $kg_yok where match_id= $match_id AND guess = 11

我不知道我是否理解你,但我认为你应该更改时间戳的 mysql 表选项,使其为空或无。 不要做current_timestamp

将要存储时间和日期的字段声明为 DATETIME,因为每次更新时都会更新时间戳 无论您是否愿意,您的记录都会更新

日期时间与时间戳

首先,我宁愿建议您每次使用查询手动将列从时间戳更改为日期时间并插入/更新日期。将 coumn 定义为日期时间将使您更好地控制特定时区的指定时间

仍然如果您想继续使用时间戳,您将作为已读文档

  • 链接 1
  • 链接 2

谢谢大家,但我想我想出了解决方案。我将查询更改为:

UPDATE guesses SET result = $kg_yok, timestamp=timestamp 
where match_id= $match_id AND guess = 11

这将采用与提交的时间戳相同的值并将其重新分配给新的更新,这样我可以通过再次重新分配来保持该值不变。

尽管您找到了解决方案,但您可能需要考虑稍微修改该表。您有一个时间戳字段来记录操作发生的时间,但如果您想知道记录的创建时间,则需要两个字段:

created_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP
updated_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

或者,为什么不简单地记录所有猜测