MySQL 有一种 timestamp 列类型,可以自动为该列插入当前时间戳,当 Update 语句执行时,该时间戳也会自动更新。但有的时候,并不希望在更新时该值也自动更新,那该怎么办呢?

其实也很简单,timestamp 自身支持这种设置。

当建立 timestamp 列时,一般的语句为:

create table tablename ( datecolname timestamp not null , ……..)

其实该语句的完整语句为:

create table tablename (datecolname timestamp not null default current_timestamp on update current_timetamp, ……..)

如果你想让行值发生变化时时间戳不要自动更新,可以使用以下语句:

create table tablename(datecolname timestamp not null default current_timestamp, ……..)

问题的关键就在于有 default current_timestamp 语句而没有 on update current_timestamp 语句。

在 MySQL Query Browser 中建立表结构时,如果不想让 timestamp 自动更新,记得一定要手动输入 default 为 current_timestamp ,这样 MySQL Query Browser 就会自动生成合适的 SQL 语句来建立表结构了。