PostgreSQLのPL/pgSQLでinsert後に自動連番されるidを取得する方法です。 以下のテーブルを想定します。 CREATE TABLE t_user ( user_id BIGSERIAL NOT NULL ,user_name TEXT NOT NULL ,PRIMARY KEY(user_id) ) 最初はよく見かけるサンプルですが、あまりお勧めしないのがLASTVAL()。 これは最後に発行された連番を返す関数なので一見うまくいきそうなのですが、triggerなどで別のテーブルに連番が発行された時に狂います。 以前slony-Iでtriggerが使われていて、バグを特定するのが大変だったことがありました。 ソースは以下のようになります。 CREATE OR REPLACE FUNCTION insert_user( p_user_name TEXT ) RETURNS