Использование returning с последующим insert

В PostgreSQL (версии 10) я делаю некоторый insert с разрешением конфликта в виде update и возвращаю id. Можно ли и, если можно, то как использовать этот id для insert в одном sql-запросе? Т.е. я пытаюсь сделать что-то вроде такого:

WITH someVal AS (
    INSERT INTO someTable01
    (col1, col2, col3)
    VALUES(val1, val2, val3) ON CONFLICT (val1, val2) DO UPDATE
    SET val1=someVal1, val2=someVal2, val3=someVal3
    RETURNING id
) INSERT INTO someTable02 (otherCol1, otherCol2, fkCol3)
VALUES(otherVal1, otherVal2, (select id from someVal));

Колонки в таблицах разные. Во второй таблице собственно есть foreign key на id первой таблицы, который я и хочу использовать вернув из выражения вставки\обновления.


Ответы (0 шт):