Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कंसोल डालने के बाद mySQL ट्रिगर काम करता है, लेकिन स्क्रिप्ट डालने के बाद नहीं

मुझे लगता है कि यह कहीं अधिक संभावना है कि आप एक अनकही त्रुटि का सामना कर रहे हैं, बजाय इसके कि ट्रिगर निष्पादित नहीं हो रहा है, खासकर जब से यह कंसोल से सफलतापूर्वक निष्पादित होता है।

आपको यह अलग करना होगा कि त्रुटि कहाँ होती है - ट्रिगर में ही, या कॉलिंग स्क्रिप्ट में।

अपनी पायथन लिपि में, SQL कथन का प्रिंट आउट लें, जिसे पायथन MySQL को निष्पादन के लिए भेजता है ताकि यह सुनिश्चित हो सके कि यह आपकी अपेक्षा के अनुरूप बनाया गया है - उदाहरण के लिए, यदि NEW.type 'PRE' के बराबर नहीं है, तो ट्रिगर निष्पादित हो जाएगा, लेकिन किसी भी अपडेट का परिणाम नहीं होगा।

यह भी सुनिश्चित करें कि आप इन्सर्ट में त्रुटियों की जाँच कर रहे हैं। मैं अजगर प्रोग्रामर नहीं हूं, इसलिए मैं आपको यह नहीं बता सकता कि यह कैसे किया जाता है, लेकिन यह ऐसा लगता है कि आप जो खोज रहे हैं।

यदि इनमें से कोई भी आपको समस्या की ओर नहीं ले जाता है, तो संपूर्ण if (NEW.type = 'PRE') THEN पर टिप्पणी करें ब्लॉक करें और एक साधारण संशोधन करें, जैसे NEW.type को 'डीबग' पर सेट करना। यह सुनिश्चित करने के बाद कि ट्रिगर वास्तव में निष्पादित होता है, जब तक आप समस्या को अलग नहीं करते हैं, तब तक अधिक वास्तविक कोड के साथ क्रमिक रूप से पुन:परीक्षण करें।

साथ ही, मार्कोस ने टिप्पणी की, मुझे आश्चर्य होगा कि अगर स्क्रिप्ट सफलतापूर्वक पूरा होने पर ऑटो-प्रतिबद्ध नहीं होती है। दरअसल, मैं यह बयान किसी भी लिपि/भाषा के बारे में बताऊंगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql_connect ():कोई कनेक्शन नहीं बनाया जा सका क्योंकि लक्ष्य मशीन ने सक्रिय रूप से इसे अस्वीकार कर दिया था

  2. केकफ़्पी 3 में गतिशील रूप से डेटाबेस कनेक्शन बदलें

  3. MySQL प्रतिलिपि पंक्तियों को उसी तालिका में कुंजी मान के साथ बदल दिया गया है (मौजूदा ओवरराइटिंग नहीं)

  4. PHP का उपयोग करके .pdf फ़ाइलों को MySQL में BLOB के रूप में कैसे स्टोर करें?

  5. django में नया डेटाबेस कनेक्शन कैसे बनाएं