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

Akinori FUJII showten24 @ yahoo.co.jp
2006年 7月 28日 (金) 17:54:14 JST


鈴木さんへ
藤井と申します。

defaultにnextvalを設定しているのなら

下記のINSERT文で自動採番されたあとにレコードが登録されるはずですよ。
insert into test2 (name) values('test name');



--- 鈴木孝征 <takamasa @ thaliana.myhome.cx> wrote:

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