Es gibt verschiedene Möglichkeiten, dies zu tun.
Am einfachsten ist es, die lastval()
Funktion zu verwenden, die den Wert zurückgibt, der durch die "letzte" Sequenz nextval generiert wurde.
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (lastval(), ...), (...), (...);
COMMIT;
Wenn Sie den Namen der Sequenz für die entity
Tabelle kennen, können Sie auch die folgende currval
Funktion verwenden:
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (currval('entity_eid_seq'), ...), (...), (...);
COMMIT;
Dies kann allgemeiner geschrieben werden, indem die pg_get_serial_sequence()
Funktion verwendet wird, ohne den Sequenznamen fest zu codieren:
START TRANSACTION;
INSERT INTO entity ...;
INSERT INTO t2 (eid, ...) VALUES (currval(pg_get_serial_sequence('entity', 'eid')), ...), (...);
COMMIT;
Weitere Informationen finden Sie im Handbuch: http://www.postgresql.org/docs/current/static/functions-sequence.html
ein Pferd ohne Name
quelle