即使我没有更改任何内容,也会使TIMESTAMP列更新?

时间:2010-10-25 11:51:10

标签: php sql mysql html database

我有一个MySql表,它有一个时间戳列。

该表还有很多其他列。

我的页面上有一个“更改分类”部分。

当用户更改其分类广告时,我希望时间戳更新其时间戳。它确实如此,但有时你根本不改变分类,你只是想让它“更新”。

即使没有更新任何内容,如何更新TimeStamp列?

即:

  UPDATE table
  SET text='hello'
  WHERE table.id='id_here';

在上面的示例中,如果列“text”已经是hello,那么这里什么都不会发生。时间戳不会更新。

除了添加另一列之外,还有什么方法吗?任何MySql设置?

由于

3 个答案:

答案 0 :(得分:1)

为什么不用时间戳更新timestamp列?

  UPDATE table
  SET timestamp = now()
  WHERE table.id='id_here';

或许我错过了你的部分问题?

答案 1 :(得分:0)

这不是你问题的真正答案,但我认为时间戳列通常是一个坏主意。他们是个坏主意的原因是这样的。你让MySQL自动完成任务,如果它对自动应该做什么的想法并不完全是你想要它做什么的想法,那么你就会陷入困境。

我会添加一个额外的列,键入datetime(取决于您需要的准确度)并始终明确更新它。

答案 2 :(得分:0)

时间戳列是一个很好的主意,所有企业DBMS都有它们;所有操作方式都相同。它所做的“东西”是标准的,清晰记录的技术操作。它不能直接更新,只是为了防止人们做这样的愚蠢事情并损害其本来应有的真正价值;供应商已正确保护您的数据库免遭滥用和颠覆。

滥用Timestamp列是一个坏主意。

试图让它去做从未设计过的事情,这是一个坏主意。

UPDATE ... SET“hello”to“hello”是一个严重的误用,以及服务器上不必要的工作。

您正在尝试使用Timestamp列来标识Timestamp以外的内容。馊主意。那个(事实)应该在数据(一列)中表示。做得好。向表中添加DATE列:RenewedDate。