Я создал триггер для событий INSERT.
CREATE TABLE TBLEXAMPLE
(
KEY1 CHARACTER VARYING(10) NOT NULL,
KEY2 CHARACTER VARYING(14) NOT NULL,
VALUE1 CHARACTER VARYING(20),
VALUE2 CHARACTER VARYING(20) NOT NULL,
CONSTRAINT TBLEXAMPLE_PKEY PRIMARY KEY (KEY1, KEY2)
);
CREATE TRIGGER TBLEXAMPLE_AFTER
AFTER INSERT
ON TBLEXAMPLE
FOR EACH ROW
EXECUTE PROCEDURE NOTIFY();
CREATE OR REPLACE FUNCTION NOTIFY() RETURNS trigger AS
$BODY$
BEGIN
PERFORM pg_notify(CAST('myEvent' as text), row_to_json(NEW)::text);
RETURN new;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE COST 100;
Однако выполнение вставки не вызывает никаких событий.
INSERT INTO TBLEXAMPLE(KEY1, KEY2, VALUE1, VALUE2) VALUES ('k1', 'k2', 'v1', 'v2');
События инициируются, если я явно уведомляю с консоли: -
NOTIFY myEvent, '{"id": 3, "state": "active"}';