В функции SQL я могу вернуть логическое значение, если я выполняю
with myquery as (delete from mytable where id = 'value1' returning 1)
select exists (select * from another_function('value2') where (select count(*) from myquery) > 0);
Но в функции plpg sql она не работает и выдает ошибку query has no destination for result data
.
В этой функции я хочу выполнить another_function
, если какие-либо строки были фактически удалены из mytable
. Проблема в том, что я повторяю всю часть select exists
, потому что я использую это в нескольких функциях.
Можно ли переместить больше этих логи c в another_function
? Чтобы я мог сделать что-то подобное?
with myquery as (delete from mytable where id = 'value1' returning 1)
select * from another_function('value2', myquery)
Как я могу передать CTE в функцию, чтобы мне не нужно было повторять select exists
и where (select count(*) from myquery) > 0)
каждый раз, когда я хочу вызвать another_function