dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

mysqlのnow()の更新時刻

2011-11-13 23:18:28 | mysql
mysqlでトランザクションを使用した場合のnow()の更新時刻を調べてみました。
トランザクションを使用した場合、now()の時刻はcommitの時刻ではなく、updateを受理した時刻になるようです。


mysql> create table test1 (
-> t datetime
-> );
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)

mysql> start transaction;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test1 set t = now();
Query OK, 1 row affected (0.00 sec)

mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2011-11-13 23:26:29 |
+---------------------+
1 row in set (0.00 sec)

mysql> select sleep(30);
+-----------+
| sleep(30) |
+-----------+
| 0 |
+-----------+
1 row in set (30.00 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test1;
+---------------------+
| t |
+---------------------+
| 2011-11-13 23:26:16 |
+---------------------+
1 row in set (0.00 sec)