mysql数据类型为timestap_关于MySQL数据类型timestamp的讨论

在项目中用到了timestamp这个类型,该字段本意是用于存储改行记录的创建时间的,实际上这是一个很危险的设置;

mysql官方文档上有这么一段话:

TheTIMESTAMPdata type provides a type that you can use to automatically markINSERTorUPDATEoperations with the current date and time. If you have multipleTIMESTAMPcolumns in a table, only the first one is updated automatically. (From MySQL 4.1.2 on, you can specify whichTIMESTAMPcolumn updates;

意思大概是timestamp类型会随着insert或update更新而自动更新;

下面实际来测试一个案例:

mysql> create table b(ID int ,Time timestamp);

Query OK, 0 rows affected (0.01 sec)

mysql> insert into b values(1,now());

Query OK, 1 row affected (0.00 sec)

mysql> insert into b values(2,now());

Query OK, 1 row affected (0.01 sec)

-------------------------------------------------

mysql> select * from b;

+------+---------------------+

| ID   | Time                |

+------+---------------------+

|    1 | 2013-07-26 13:56:11 |

|    2 | 2013-07-26 13:57:43 |

+------+---------------------+

------------------------------------------------

mysql> update b  set  id=3 where id=2;

------------------------------------------------

mysql> select * from b;

+------+---------------------+

| ID   | Time                |

+------+---------------------+

|    1 | 2013-07-26 13:56:11 |

|    3 | 2013-07-26 16:35:43 |

+------+---------------------+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值