2009-04-04 7 views
5

क्या यह सच है कि मैं एक MySQL ट्रिगर संपादित नहीं कर सकता, मुझे इसे छोड़ना और नया बनाना है?क्या यह सच है कि मैं एक MySQL ट्रिगर संपादित नहीं कर सकता, मुझे इसे छोड़ना और नया बनाना है?

इसके अलावा, ट्रिगर्स के लिए एक सापेक्ष नवागंतुक होने के नाते, ऐसा लगता है कि वे 'गलत' डेटा उत्पन्न करने के लिए उत्तरदायी प्रतीत होते हैं। उदाहरण के लिए, मैं एक विशेष प्रकार की अद्यतन क्वेरी के बाद एक ट्रिगर को निकाल दिया जाना चाहिए (डेटा को किसी अन्य तालिका में डालना), लेकिन दूसरों को नहीं।

यहां कोई भी सुझाव कृतज्ञता से प्राप्त हुआ है!

उत्तर

6

संपादित करें: हाँ, यह सच है कि संस्करणों 5.n और MySQL 5 & की 6.n 6 को लागू बाकी CREATE TRIGGER और DROP TRIGGER और कुछ भी नहीं। this hunk of Postgres documentation के अनुसार, वहाँ भी नहीं CREATE TRIGGER एसक्यूएल 92 में है, तो अपने आप को भाग्यशाली TRIGGER बिल्कुल :-)

के लिए विचार करना है Visual Studio MySQL plugin documentation है:

एक नोड पर एक मौजूदा ट्रिगर, डबल क्लिक करें संशोधित करने के लिए उस ट्रिगर का जिसे आप संशोधित करना चाहते हैं, या इस नोड पर राइट क्लिक करें और संदर्भ मेनू से ऑल्टर ट्रिगर कमांड चुनें। आदेशों में से कोई भी SQL संपादक खोलता है।

... जो आप चाहते हैं वह करने के लिए लगता है। मेरा अनुमान है कि यह जीयूआई चीनी है और दृश्यों के पीछे आपको DROP CREATE मिलता है।

कुछ UPDATE एस के लिए ट्रिगर जहां तक ​​अन्य नहीं, एसक्यूएल में प्रति तालिका UPDATE है। अपने UPDATE ट्रिगर की शुरुआत में IF क्लॉज डालें ताकि आपका तर्क - जो भी आप अपने UPDATE एस में कुछ भी कर रहे हैं - केवल तभी निष्पादित किया जाता है जब आपको लगता है कि यह उचित है।

+0

इसके लिए धन्यवाद, मैंने अपनी यात्रा पर उस लेख को देखा था। मैं हालांकि विजुअल स्टूडियो प्लग का उपयोग नहीं कर रहा हूं। :(कठोर लगता है कि मैं एक बार बनाए गए ट्रिगर में क्रियाओं को संपादित नहीं कर सकता। अभी भी कभी नहीं! – cw84

2

MySQL में रीप्लेस ट्रिगर है, है ना?

एक sidenote के रूप में .. क्या यह एक मुद्दा है? यदि आप चिंतित हैं तो डीआरओपी और क्रिएट के बीच प्रश्नों को निष्पादित किया जाता है, तो आप हमेशा तालिका को हमेशा लॉक कर सकते हैं।

+0

क्या आप टेबल को लॉक कर सकते हैं ?? MySQL में सभी डीडीएल कथन पूरी तरह से लेनदेन करते हैं। जब तक कि मैं गलत नहीं हूं, ताले द्वारा जारी किया जाएगा ड्रोप ट्रिगर ... – nathan

+0

मैं इसे वापस लेता हूं। मैंने इसे देखा, और ऐसा लगता है कि ताले ड्रॉगर ट्रिगर द्वारा रिलीज़ नहीं होंगे या ट्राइगर स्टेटमेंट तैयार नहीं करेंगे। यह यहां समझाया गया है: http://dev.mysql.com/doc/ RefMan/5.0/en/लॉक-टेबल और transactions.html – nathan

संबंधित मुद्दे