2010-12-09 12 views
8

यदि यह अस्तित्व में नहीं है तो मैं केवल एक ट्रिगर कैसे बना सकता हूं?पोस्टग्रेज़ ट्रिगर निर्माण

जब मैं बना या प्रतिस्थापित करता हूं, तो मुझे एक वाक्यविन्यास त्रुटि मिलती है इसलिए मैं ट्रिगर के अस्तित्व के परीक्षण के लिए एक तरीका ढूंढ रहा हूं।

मैं हमेशा * pg_trigger से * चुन सकता हूं, लेकिन मुझे यकीन है कि एक और उपयुक्त तरीका है।

धन्यवाद

+1

यह हमेशा एक अच्छा विचार है postgres आप –

उत्तर

16

Postgres सशर्त एक ट्रिगर ड्रॉप कर सकते हैं - the docs देखते हैं। से पहले ट्रिगर बनाएं, फिर यह हमेशा काम करेगा।

DROP TRIGGER IF EXISTS mytrigger ON mytable; 

जैसे जैक टिप्पणियों में बताते हैं, यह सुविधा केवल 8.2 के बाद उपलब्ध है; हालांकि यह चार साल से अधिक समय से बाहर रहा है, इसलिए यह आपके संस्करण में उपलब्ध होना चाहिए।

+0

@El योबो उपयोग कर रहे हैं की क्या संस्करण, का उल्लेख है कि इस सुविधा 8.2 –

+0

@Jack में पेश किया गया था लायक उल्लेख करने के लिए - सच है, धन्यवाद ओर इशारा करते हुए के लिए वह बाहर –

+0

@El Yobo यह सुनिश्चित करना मुश्किल है कि अभी भी कितने 8.1 का उपयोग कर रहे हैं - मुझे लगता है कि यह विचार करने के लिए एक महत्वपूर्ण कारक है कि यह आरएचईएल 5 पर डिफ़ॉल्ट इंस्टॉल है और मुझे संदेह है कि इसका मतलब है कि उपयोग अभी भी व्यापक है –

0
CREATE TRIGGER (NameOfTrigger) AFTER INSERT OR UPDATE ON (NameOfTable) 

DROP TRIGGER IF EXISTS (NameOfTrigger) ON (NameOfTable); 
संबंधित मुद्दे