よくあるパターンですが、あるテーブルを INSERT した直後に、関連するテーブルにもデータを INSERT する必要があって、最初に INSERT したテーブルのキー項目の値が取りたいんだけど、そのキー項目はシーケンスで設定している。みたいな場合の話です。 currval 関数を使って次のような感じにできます。 -- データを INSERT INSERT INTO hoge (hoge_no, hoge_text) VALUES (nextval('hoge_no_seq'), 'ほげげ'); -- 直前のシーケンス値を取得 SELECT currval('hoge_no_seq'); currval 関数は同一セッション中で設定された直前のシーケンス値を返すことを保証しているので、他のプログラムからも nextval がガンガン使われているような環境でも、しっかり直前の値を返してくれる