PostgreSQLのSEQUENCE
CREATE TABLE entity1 (id serial primary key, val text); CREATE TABLE entity2 (id serial primary key, val text); CREATE TABLE cross12 (id serial primary key, entity1_id integer, entity2_id integer);
みたいなテーブル構成で
INSERT INTO entity1 (val) VALUES ('aaaa'); INSERT INTO entity2 (val) VALUES ('bbbb'); INSERT INTO cross12 (entity1_id, entity2_id) VALUES (currval('entity1_id_seq'), currval('entity2_id_seq'));
のように、今このセッションでそのSEQUENCEから払い出された値を後で参照できるみたい。ふーん。いいなこれ。