[pgsql-jp: 25532] Re: トランザクション中の TIMESTAMPについて
sugita @ sra.co.jp
sugita @ sra.co.jp
2002年 4月 3日 (水) 22:26:10 JST
杉田です。
From: "kiyoshi.yoshida" <kiyoshi.yoshida @ mail.toyota-shokki.co.jp>
Subject: [pgsql-jp: 25531] トランザクション中の TIMESTAMPについて
Date: Wed, 03 Apr 2002 21:34:05 +0900
;;; MLの皆さま、今晩は。吉田と申します。
;;;
;;; create table t1(i int,tm timestamp default current_timestamp);
;;; 上記テーブルに対して1トランザクション中に、複数の行を挿入すると、結果と
;;; してtmの値は同一の値となってしまうようです。
これは、そういうものだと思います。
;;; tmを登録順序を示すソートキーとして使用するため、これをちゃんと登録時刻に
;;; 反映させることは、PostgerSQLの設定で可能でしょうか。
次のようにするとトランザクション内でも時刻が変わりますが、ユニークさが確実か
は分かりません。厳密には sequence か serial が確実です。
sugita=# begin;
BEGIN
sugita=# insert into dtest values (timeofday()::timestamp);
INSERT 160309 1
sugita=# insert into dtest values (timeofday()::timestamp);
INSERT 160310 1
sugita=# insert into dtest values (timeofday()::timestamp);
INSERT 160311 1
sugita=# insert into dtest values (timeofday()::timestamp);
INSERT 160312 1
sugita=# insert into dtest values (timeofday()::timestamp);
INSERT 160313 1
sugita=# insert into dtest values (timeofday()::timestamp);
INSERT 160314 1
sugita=# insert into dtest values (timeofday()::timestamp);
INSERT 160315 1
sugita=# end;
COMMIT
sugita=# select * from dtest;
d
---------------------------
2002-04-03 22:21:11.35+09
2002-04-03 22:21:12.72+09
2002-04-03 22:21:13.34+09
2002-04-03 22:21:13.89+09
2002-04-03 22:21:14.41+09
2002-04-03 22:21:14.97+09
2002-04-03 22:21:15.54+09
(7 rows)
sugita=#
Kenji Sugita
sugita @ sra.co.jp
pgsql-jp メーリングリストの案内