0

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

match_id, timestamp, result, guess

这是我的查询:

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

5 回答 5

0

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

created_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP

updated_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

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

于 2013-11-02T08:48:07.863 回答
0

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

于 2013-11-02T07:07:55.670 回答
0

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

日期时间与时间戳

于 2013-11-02T07:27:01.393 回答
0

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

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

于 2013-11-02T07:34:31.027 回答
0

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

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

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

于 2013-11-02T07:38:50.857 回答