Допустим, у меня есть две таблицы с несколькими полями, и в каждой таблице есть первичный ключ, который представляет собой технический идентификатор, сгенерированный последовательностью базы данных:
table1 table2
------------- -------------
field11 <pk> field21 <pk>
field12 field22
field11
и field21
генерируются последовательностями.
Также существует отношение n: m между table1
и table2
, разработанное в table3
:
table3
-------------
field11 <fk>
field21 <fk>
Идентификаторы в table1
и table2
генерируются во время оператора вставки:
INSERT INTO table1 VALUES (table1_seq1.NEXTVAL, ...
INSERT INTO table2 VALUES (table2_seq1.NEXTVAL, ...
Поэтому я не знаю первичного ключа добавленной строки на уровне доступа к данным моей программы, потому что генерация pk
происходит полностью в базе данных.
Как лучше всего обновлять table3
сейчас? Как я могу получить доступ к первичному ключу строк, которые я только что вставил?