У меня есть функция получения, которая извлекает значение из ряда соединенных таблиц, например:
SELECT
foo
FROM
my_table AS mt
LEFT JOIN my_other_table AS mot ON mt.pkey = mot.fkey
LEFT JOIN my_other_other_table AS moot ON mot.pkey = moot.fkey
WHERE
mt.pkey = 0
Мне интересно, есть ли способ как-то преобразовать это в функцию установки, которая позволила бы мнеобновить любую часть этой объединенной таблицы и распространить эти изменения обратно на их исходные таблицы, т.е. что-то вроде этого:
UPDATE
my_table AS mt
LEFT JOIN my_other_table AS mot ON mt.pkey = mot.fkey
LEFT JOIN my_other_other_table AS moot ON mot.pkey = moot.fkey
SET
mt.some_val = 0
mot.some_other_val = 1
moot.some_other_other_val = 2
WHERE
mt.pkey = 0
Я понимаю, что приведенный выше код на самом деле не работает, и я довольноуверен, что это на самом деле невозможно, но я хочу оставить все как есть.Есть ли способ сделать то, что я хочу сделать?Или это потребует более сложной функции plpgsql?