Ada berbagai cara untuk melakukan ini.
Cara termudah adalah dengan menggunakan lastval()
fungsi yang akan mengembalikan nilai yang dihasilkan oleh urutan berikutnya "terakhir".
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (lastval(), ...), (...), (...);
COMMIT;
Jika Anda tahu nama urutan untuk entity
tabel Anda juga bisa menggunakan currval
fungsi:
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (currval('entity_eid_seq'), ...), (...), (...);
COMMIT;
Ini dapat ditulis dengan cara yang lebih umum dengan menggunakan pg_get_serial_sequence()
fungsi, menghindari untuk meng-hardcode nama urutan:
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (currval(pg_get_serial_sequence('entity', 'eid')), ...), (...);
COMMIT;
Untuk detail lebih lanjut, silakan lihat manual: http://www.postgresql.org/docs/current/static/functions-afterence.html
seekor kuda tanpa nama
sumber