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