[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 メーリングリストの案内