>> I never found an adequate (simple and efficient) method for getting >> the primary key ID of the just-inserted row, and usually used >> transactions and "select last value, ordered by id"-type queries to >> get the last id value, or other ugly logic. > > use currval() instead, see > http://www.postgresql.org/docs/current/static/functions-sequence.html > -- I think I researched that before also, but I wasn't sure at the time how safe it was against race conditions. Although I see now (reading the docs again) that it is tracked for different sessions so it should be safe. There might also be issues (for instance, where you are using a complex database-handling library), where you can't always guarantee that your currval() call is made at the right time. But most of the time it should be fine. Thanks for the reminder. > Also, you can do insert....returning... (as of version 8.2, I think): > > INSERT INTO clients (id, name) > VALUES (nextval('clients_id_seq'), 'John Smith') > RETURNING id; Thanks. I think I saw that too, not too long ago, but forgot about it. Some of the PostgreSQL services I use are on older versions, so I need to use older syntax. But, this will be useful when the db version is guaranteed to be recent. Thanks also for your reminder. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general