У меня есть php-скрипт, в котором я установил параметры, которые я затем использую в 2 операторах слияния для db2.
Проблема заключается в том, что в моем первом операторе слияния мне нужно получить и использовать первичный ключзатронутой строки (если слияние выполнило обновление, захватите идентификатор обновленной строки. Если это сделало вставку, захватите вновь созданный идентификатор), потому что мне нужно использовать идентификатор / первичный ключ во втором слиянии (либо вставка, либо обновлениестрока, в которой он уже есть)
Мои два оператора слияния:
/*products table*/
MERGE INTO products AS P
USING(VALUES(
:GROUP,
:DTL12,
:DTL13,
:CUSTNM,
:SELLINGN,
:COUNT_PLMN_1,
:LAST_DATE
)
)
AS S(GROUP,DTL12,DTL13,CUSTNM,SELLINGN,COUNT_PLMN_1,LAST_DATE)
ON s.GROUP = p.GROUP and s.DTL12 = p.DTL12 and s.DTL13 = p.DTL13 and s.CUSTNM = p.CUSTNM
WHEN MATCHED
THEN UPDATE SET LAST_DATE = s.LAST_DATE
WHEN NOT MATCHED
THEN INSERT VALUES (s.GROUP,s.DTL12,s.DTL13,s.CUSTNM,s.SELLINGN,s.COUNT_PLMN_1,s.LAST_DATE)
/*ORDERS Table*/
MERGE INTO ORDERS AS PO
USING(VALUES(
/*need foreign key, which is id from products table*/
:QUANTITY,
:LAST_DATE,
:INVOICE_NUMBER
))
AS S(PRODUCT_ID,quantity_ordered,LAST_DATE,invoice_number)
ON s.PRODUCT_ID = po.id
WHEN MATCHED
THEN UPDATE SET LAST_DATE = s.LAST_DATE, quantity_ordered = s.quantity_ordered, invoice_number = s.invoice_number
WHEN NOT MATCHED
THEN INSERT VALUES (s.PRODUCT_ID, s.quantity_ordered, s.LAST_DATE, s.invoice_number)
Как я могу правильно обработать это в php-скрипте?