我有一个MySql表,它有一个时间戳列。
该表还有很多其他列。
我的页面上有一个“更改分类”部分。
当用户更改其分类广告时,我希望时间戳更新其时间戳。它确实如此,但有时你根本不改变分类,你只是想让它“更新”。
即使没有更新任何内容,如何更新TimeStamp列?
即:
UPDATE table
SET text='hello'
WHERE table.id='id_here';
在上面的示例中,如果列“text”已经是hello,那么这里什么都不会发生。时间戳不会更新。
除了添加另一列之外,还有什么方法吗?任何MySql设置?
由于
答案 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。