मेरा गुगलिंग-फू मुझे असफल कर रहा है। कैसे पता चलेगा कि PostgreSQL ट्रिगर अक्षम है या नहीं?आप कैसे बता सकते हैं कि PostgreSQL में कोई ट्रिगर सक्षम है या नहीं?
उत्तर
यह postresql के साथ अपने पहले दिन है, लेकिन मुझे लगता है कि आप pg_trigger प्रणाली तालिका के माध्यम से ट्रिगर राज्य की जाँच कर सकते हैं: http://www.postgresql.org/docs/current/static/catalog-pg-trigger.html
कॉलम आप की आवश्यकता होगी tgrelid
और tgenabled
हैं।
वर्तमान में अद्यतित लिंक: http://www.postgresql.org/docs/current/static/catalog-pg-trigger.html –
नीचे दिया गया एसक्यूएल काम करेगा। यह आपके वर्तमान डेटाबेस में सभी ट्रिगर्स प्रदर्शित करता है।
SELECT pg_namespace.nspname, pg_class.relname, pg_trigger.*
FROM pg_trigger
JOIN pg_class ON pg_trigger.tgrelid = pg_class.oid
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace
तो tgenabled है 'डी', ट्रिगर अक्षम है। अन्य सभी मान (दस्तावेज here) इंगित करते हैं, कि यह किसी भी तरह से सक्षम है।
बीटीडब्ल्यू। आप एक विशिष्ट तालिका के लिए ट्रिगर की जांच करना चाहते हैं, तो क्वेरी थोड़ा कम है:
SELECT * FROM pg_trigger
WHERE tgrelid = 'your_schema.your_table'::regclass
regclass प्रकार के डाली OID के लिए (वस्तु आईडी) योग्य तालिका नाम से आप हो जाता है आसान मार्ग।
SELECT EXISTS (
SELECT tgenabled
FROM pg_trigger
WHERE tgname='your_unique_trigger_name' AND
tgenabled != 'D'
);
क्या आप जानते हैं ट्रिगर नाम अद्वितीय है यदि उपरोक्त सच (टी) वापस आ जाएगी अगर your_unique_trigger_name ट्रिगर सक्षम है:
exists
--------
t
(1 row)
तो अक्षम यह गलत वापसी होगी (च)।
एम बनाते समय डिफ़ॉल्ट रूप से ट्रिगर्स सक्षम हैं? स्पष्ट वैकल्पिक तालिका सक्षम ट्रिगर आवश्यक है? – user4658312