множественный вызов процедуры в триггере? - PullRequest
0 голосов
/ 05 января 2019

Я хотел бы вызвать несколько процедур из триггера в postgres.

CREATE TRIGGER fn_trigger_notify_ev
AFTER INSERT
ON public.event_notifications
FOR EACH ROW
EXECUTE PROCEDURE public.notify_events();
EXECUTE PROCEDURE public.notify_events_count();

После выполнения этой команды я получаю сообщения об ошибках, поэтому, пожалуйста, дайте мне знать, можно ли вызвать несколько процедур в триггере?

Сообщение об ошибке:

ERROR:  syntax error at or near "public"
LINE 6:   EXECUTE PROCEDURE public.notify_events_count();
                        ^

********** Error **********

ERROR: syntax error at or near "public"
SQL state: 42601
Character: 167

Есть ли метод для вызова нескольких процедур?

1 Ответ

0 голосов
/ 05 января 2019

Как прокомментировано, создание триггера для процедуры является одним из способов. Я думаю, вы также можете просто обернуть вызовы функций в одну процедуру, например ( psql пример):

CREATE OR REPLACE FUNCTION do_notifies(
) RETURNS VOID AS $$
BEGIN
    PERFORM notify_events();
    PERFORM notify_events_count();
END; $$
LANGUAGE plpgsql;

и в вашем триггере просто:

EXECUTE PROCEDURE public.do_notifies();
...