一、概述
在工作中,经常需要用到更新时间戳的操作,比如在插入一行语句之后要把时间设置成插入时间,或者修改了一行数据也要把时间设置为更新的时间。如果每次都是手动去获取时间然后通过update
去更新字段,就很麻烦了。这时候可以利用mysql
提供的两个操作来完成:CURRENT_TIMESTAMP
ON UPDATE TIMESTAMP
二、使用方法
1.CURRENT_TIMESTAMP
表示当前时间戳,表示把时间设置为当前时间,一般可以把它设置成时间戳的默认值。
2.ON UPDATE CURRENT_TIMESTAMP
ON UPDATE CUEEENT_TIMESTAMP
表示有更新操作时把时间设置为当前时间。
3.测试案例
首先准备一张表test用来测试:
1 2 3 4 5 |
mysql> create table test( -> id INT PRIMARY KEY AUTO_INCREMENT, -> id INT PRIMARY KEY AUTO_INCREMENT, -> content VARCHAR(50) NOT NULL DEFAULT "", -> update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -> ); |
插入一行语句,只插入content
字段,发现时间自动更新成了插入的时间:
1 2 3 4 5 6 7 8 9 10 |
mysql> insert into test(content) values("HelloWorld"); Query OK, 1 row affected (0.05 sec) mysql> select * from test; +----+------------+---------------------+ | id | content | update_time | +----+------------+---------------------+ | 1 | HelloWorld | 2017-10-25 22:10:35 | +----+------------+---------------------+ 1 row in set (0.01 sec) |
更新content
的内容,时间同样也更新了:
1 2 3 4 5 6 7 8 9 10 11 |
mysql> update test set content = "HelloHello"; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from test; +----+------------+---------------------+ | id | content | update_time | +----+------------+---------------------+ | 1 | HelloHello | 2017-10-25 22:11:14 | +----+------------+---------------------+ 1 row in set (0.01 sec) |
评论