Có nhiều cách khác nhau để làm điều này.
Cách dễ nhất là sử dụng lastval()hàm sẽ trả về giá trị được tạo bởi chuỗi "giá trị" cuối cùng.
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (lastval(), ...), (...), (...);
COMMIT;
Nếu bạn biết tên của chuỗi cho entitybảng, bạn cũng có thể sử dụng currvalhàm:
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (currval('entity_eid_seq'), ...), (...), (...);
COMMIT;
Điều này có thể được viết theo cách tổng quát hơn bằng cách sử dụng pg_get_serial_sequence()hàm, tránh để mã hóa tên chuỗi:
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (currval(pg_get_serial_sequence('entity', 'eid')), ...), (...);
COMMIT;
Để biết thêm chi tiết, vui lòng xem hướng dẫn: http://www.postgresql.org/docs/civerse/static/fifts- resultence.html