कुछ इस तरह?
CREATE FUNCTION notif()
RETURNS TRIGGER AS $$
DECLARE
data JSONB;
result JSONB;
BEGIN
SELECT json_agg(tmp) -- requires Postgres9.3+
INTO data
FROM (
-- your subquery goes here, for example:
SELECT followers.following_user_id
FROM followers
WHERE followers.followed_user_id = NEW.user_id
) tmp;
result := json_build_object('data', data, 'row', row_to_json(NEW));
PERFORM pg_notify('event', result::TEXT);
RETURN NEW;
END;
$$ language plpgsql;
टिप्पणियों से भी:
आप चीजों को गलत समझते हैं। वापसी और सूचना दो अलग-अलग चीजें हैं।
सबसे पहले वापसी के साथ सौदा करते हैं। INSERT ट्रिगर के बाद वापसी मूल्य को पूरी तरह से अनदेखा कर दिया जाता है :
वापसी मूल्य केवल ट्रिगर से पहले के लिए मायने रखता है। इस मामले में आप तालिका में लिखने से पहले पंक्ति को संशोधित (या रोक भी सकते हैं) कर सकते हैं। इसे देखें:https://www.postgresql.org/docs/9.2/ plpgsql-trigger.html इसका सूचनाओं से कोई लेना-देना नहीं है।
तो सूचनाओं का क्या? एक सूचना से आपको जो कुछ भी प्राप्त होता है, वही आप pg_notify
के दूसरे तर्क के रूप में पास करते हैं . वह सब काफी अच्छी तरह से प्रलेखित है:https://www.postgresql.org /docs/9.0/sql-notify.html