我正在使用pg_channels从python的pg_notify中获取事件(delete或create),但我需要设置一个if来检查触发的事件是否是delete或create,这样我就可以应用规则,但我不知道如何获取事件名。
谢谢你们的帮助。
pcg = pg_channels.connect(host='', database='', user='', password='', port='5432')
# listening an event
pcg.listen('xgracco')
#loop to watch events from posgres pg_notify
for event in pcg.events():
info = json.loads(event.payload)
我的功能和触发器
create or replace function public.notify() returns
trigger as $BODY$
begin
if new.tp_status = 'ERRO' then
perform pg_notify('xgracco', row_to_json(NEW)::text);
end if;
return new;
end
$BODY$
language 'plpgsql';
create trigger after_insert
after insert or update
on "tb_fila"
for each row
execute procedure public.notify()
create or replace function public.notify_delete() returns
trigger as $BODY$
begin
if old.tp_status = 'ERRO' then
perform pg_notify('xgracco', row_to_json(OLD)::text);
end if;
return old;
end
$BODY$
language 'plpgsql';
create trigger before_delete_xgracco
before delete
on "tb_fila"
for each row
execute procedure public.notify_delete()