У меня есть некоторые структуры SQL следующим образом:
DO $$
DECLARE
foo text := 'thisisfoo';
myId bigint;
BEGIN
myId = (select id from blah.things);
insert into bar.widgets(...)
values (myId, foo, ...);
select * from bar.widgets;
END $$ language plpgsql;
Когда я запускаю это, я получаю:
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function inline_code_block line 9 at SQL statement
SQL state: 42601
То, что я пробовал: - изменил запрос на insert into ... returning *;
и return select * from bar.widgets
.Оба приводят к ошибкам, и похоже, что создание функции с возвращаемым типом bar.widget является единственным способом продвижения вперед.
Вопрос: Нет ли способа использовать переменные, не являющиеся функциями, и возвращатьстроки таблицы? Причина в том, что я не хочу добавлять это как функцию к схеме.Он будет использоваться только несколько раз, и я не хочу загромождать схему.