How can I get one OLD.* field in a dynamic query inside a trigger function ?
В списке pgsql-general по дате отправления:
| От | Bruno Baguette |
|---|---|
| Тема | How can I get one OLD.* field in a dynamic query inside a trigger function ? |
| Дата | |
| Msg-id | 4AE27B6D.70404@gmail.com обсуждение исходный текст |
| Ответы |
Re: How can I get one OLD.* field in a dynamic query inside
a trigger function ?
|
| Список | pgsql-general |
Hello ! I'm trying to write a little trigger function with variable arguments quantity (at least one, but can be 2,3,4 arguments). Theses arguments are fields name, so only varchar variable. Since it is a dynamic query, I use the EXECUTE statement as explained on <http://www.postgresql.org/docs/8.3/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN> CREATE OR REPLACE FUNCTION delete_acl_trigger() RETURNS trigger AS $delete_acl_trigger$ DECLARE BEGIN FOR i IN 0 .. TG_NARGS LOOP EXECUTE 'SELECT delete_acl(OLD.' || TG_ARGV[i] || ');'; END LOOP; RETURN OLD; END; $delete_acl_trigger$ LANGUAGE plpgsql; But, when the trigger is triggered, I receive this error message : "Query failed: ERROR: OLD used in query that is not in a rule" How can I get the value of the OLD.' || TG_ARGV[i] field ? Many thanks in advance ! Kind regards, -- Bruno Baguette - bruno.baguette@gmail.com
В списке pgsql-general по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера