[pgsql-jp: 37642] Re: insert into をしたときにその serial の値を知る方法は

Yoshio Kano kano @ arcadia21.com
2006年 11月 10日 (金) 16:07:22 JST


加納と申します。

> 一度に複数人からデータを書き込んだときを考えて、
> 書き込んだデータのシリアル番号を知る方法
> はどうしたらわかるのか、調べていますがわかりません。
> たとえば
> CREATE TABLE test
> (
>   id serial ,
>   data text
> )
> というテーブルに
> 複数の人間が同時に
> insert into test (data) values('abcdefg');
> とかしたときにその、idの値を得る方法はあるのでしょうか。

僕もたまにこんな事があるのですが・・・
なんか上手い方法がありそうなのですが、いつも無理矢理、
下の手順で行っています。
とりあえずの回避策としてご参考頂ければ・・・。


1)insertkeyというテキスト型のカラムを作成
2)8桁以上の英数字の乱数を作成
3)データと共に乱数をinsertkeyに格納
4)「insertkey=乱数」のレコードのシリアル値を取得


一手間ありますが、複数人でのアクセスでも大丈夫かなと。
あとは乱数の桁を上げれば、とりあえずは重複はなくなるかな、
と思っています。


# 良い方法ありましたら、教えてください♪





pgsql-jp メーリングリストの案内