2011-10-10 92 views
7

我在表中有一个列update_date,类型是时间戳。我使用phpmyadmin下拉菜单设置了CURRENT_TIMESTAMP的值。但后来,当我运行SQL UPDATE x SET ... 它更新时间戳列,如果只有任何列的变化。我想实现的是每次更新sql运行时是否有更改或不设置当前时间。有没有办法在MySQL中做到这一点,或者我需要每次更新被调用时都明确地设置update_date?即使没有更改,MYSQL时间戳列自动更新?

谢谢

回答

6

您需要显式更新列。从MySQL手册,TIMESTAMP properties

自动更新TIMESTAMP列,如果有的话,会自动在该行中的任何其他列的值从当前值变化更新为当前的时间戳。 如果所有其他列都设置为其当前值,则TIMESTAMP列不会更改。如果TIMESTAMP列被明确赋值为NULL以外的值,则自动更新不适用。

重点煤矿。

+0

我行只在一个时间戳列。所以你说我应该改变默认值为空,然后每次sql运行时显式更新它,或者我可以保留默认类型为CURRENT_TIMESTAMP? – akd

+1

另一件事是,当我从的mysql_query运行此代码没有被更新“更新X设置UPDATE_DATE = NOW()”?原因是什么? – akd

+0

非常有用和棘手的提示! –