Existem diferentes maneiras de fazer isso.
A maneira mais fácil é usar a lastval()
função que retornará o valor gerado pela "última" sequência nextval.
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (lastval(), ...), (...), (...);
COMMIT;
Se você souber o nome da sequência para a entity
tabela, também poderá usar a currval
função:
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (currval('entity_eid_seq'), ...), (...), (...);
COMMIT;
Isso pode ser escrito de uma maneira mais geral, usando a pg_get_serial_sequence()
função, evitando codificar o nome da sequência:
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (currval(pg_get_serial_sequence('entity', 'eid')), ...), (...);
COMMIT;
Para mais detalhes, consulte o manual: http://www.postgresql.org/docs/current/static/functions-sequence.html