我在MySQL 5.x(使用PHP)上使用时间戳来记住事件时间。在开发过程中,我不得不用一个查询更新所有列中的内容。时间戳然后重置为当前时间。仅在创建时使用MySQL时间戳
如何仅在插入时更改时间戳,而不是更新或替换?
我在MySQL 5.x(使用PHP)上使用时间戳来记住事件时间。在开发过程中,我不得不用一个查询更新所有列中的内容。时间戳然后重置为当前时间。仅在创建时使用MySQL时间戳
如何仅在插入时更改时间戳,而不是更新或替换?
Here's all you need to know。总之,虽然,我认为这应该这样做:
ALTER TABLE `mytable`
CHANGE `mydatefield` `mydatefield`
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
谢谢!在这里“NOT NULL”部分不是我需要的。 – 2017-10-25 04:02:15
您可以使用该字段的default value,而不将其包含在插入或更新查询中。
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
很好这里for time-stamp文档。
我可能会错过一些东西,但我的表格是(而且)是这样定义的,但日期改变了。从mysql解释:'pur_time','timestamp','NO','','CURRENT_TIMESTAMP','' – Nir 2009-05-03 16:34:21
我建议对该列使用DATETIME。记录更新时不会更改。
对我来说,我使用TIMESTAMP来跟踪记录最后一次触摸的时间,尽管一般情况下我都避免使用它。
其他人可能会回答这个问题:如果在数据库中进行手动编辑时使用TIMESTAMP;或者如果您有多个TIMESTAMP列并且不想触摸所有这些列, MySQL手册说将该列分配给自己。您明确地将该列设置为其当前值(即“updated_on = updated_on”),以使其不会被UPDATE更改。 – 2010-11-12 16:22:46