В функции postgres sql я хочу запустить function_update
, только если CTE возвращает какие-либо строки. Этот запрос работает для этого.
with common_table as (select 1 where true) select function_update('value') from common_table
Но если я также хочу вернуть, обновил ли function_update
какие-либо строки, то он не работает. Функция возвращает true
или false
правильно, в зависимости от того, вернул ли CTE какие-либо строки или нет, но function_update
, похоже, не работает.
with common_table as (select 1 where true) select exists(select function_update('value') from common_table)
function_update
- это просто что-то вроде update mytable set column1 = 'changed' where column2 = arg_value
. mytable
обновляется, когда я запускаю первый запрос выше, но не второй. Почему это не работает, как ожидалось, что мне нужно изменить?