Как сделать return сразу нескольких строк? предположим мы обьявили в хранимой процедуре на pl/pgsql переменную как my_var sometable.%ROWTYPE; И когда я делаю select * from my_func(); я хочу, что бы результатом была целая таблица, т.е. сразу несколько строк, а не одна строка. можно ли вообще так сделать? И как запретить пользователю делать delete из таблицы в то время, когда активированный триггер delete делать может? Т.е. у меня есть триггер на insert прикрученный к тиблицу my_table. Если в таблицу сделать инсерт - сработает триггер, и в процессе его работы он, триггер, делает delete из этой же таблицы (my_table). А вот если delete захочет сделать пользователь, т.е. отправив запрос типа delete from my_table;, то это надо присеч, запретить. Как это сделать? В MSSQL есть фукнция для выевления уровня вложенности кода. В таком случае бы можно было этот триггер поставить на insert и delete, и когда бы он делал delete, он бы запускал сам себя, и по уровню вложенности кода это бы видел. И если уровень вложенности кода ноль, значит delete делает юзверь, на что ответить ему raise exception 'ни льзя'. Кроме того в том же MSSQL можно вообще на всё отдельные привелегии задавать... А как так сделать в PGSQL? Помогите пожайлуста.
функция которая возвращает набор записей [sql] CREATE OR REPLACE FUNCTION "public"."v_tree_func2" (integer) RETURNS SETOF "public"."v_tree_type" AS' declare my_parent alias for $1; my_rec record; s v_tree_type%ROWTYPE; begin for my_rec in select * from v_tree where parent=my_parent loop s.id := my_rec.id; s.parent := my_rec.parent; s.href := my_rec.href; Return Next s; end loop; return; end; 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY DEFINER; [/sql]
Забудь на счет PGSQL много гемора. Лучше mysql! astigmatism341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341341 radeon 6990