[pgsql-jp: 37363] 挿入したデータのserial値を取得する方法

鈴木孝征 takamasa @ thaliana.myhome.cx
2006年 7月 28日 (金) 17:16:18 JST


PostgreSQL MLの皆様へ。鈴木孝征と申します。

PostgreSQL 7.4.10を使用しています。

テーブルを下記のように定義し、下記のようにデータを追加したとします。この
とき追加したデータに割り振られたID (serial)を簡単に取得する方法ってあり
ますか。

create table test1 (id serial, name text);
insert into test1 (name) values('test name');

実際にはPHPを使っていて、データを追加した後、そのデータに対するIDを次の
処理に使いたいと思っています。

現在はテーブルの定義と追加の処理を下記のように行っていますが、もっと簡便
な手段はないものかと調べています。

create sequence seq;
create table test2 (id int default nextval('seq'), name text);
select nextval('seq');	# この処理を入れるのが面倒だと思ってしまう。、
insert into test2 (id, name) values(1, 'test name');

まあ、別にたいした量のコードではないので(select一回とそのエラー時の処理
ぐらい)、書けばいいじゃないと言われればそれまでなのですが、楽できる方法
があれば教えてください。



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