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

MySQL ट्रिगर - INSERT ट्रिगर + UDF sys_exec () समस्या के बाद

यहां तक ​​​​कि अगर आप ट्रिगर के बाद का उपयोग करते हैं, तो भी पंक्ति अभी तक प्रतिबद्ध नहीं है। लेकिन sys_exec() PHP स्क्रिप्ट के बाहर निकलने तक वापस नहीं आता है, इसलिए AFTER ट्रिगर पूरा नहीं हो सकता है, इसलिए आप INSERT भी नहीं कर सकते।

यह डिजाइन द्वारा है। आखिरकार, आप एक ही लेन-देन में अधिक संचालन कर सकते हैं, या आप लेनदेन को वापस ले सकते हैं। ट्रिगर से बाहरी प्रक्रियाओं को लागू करने में यही समस्या है:बाहरी प्रक्रियाएं डेटाबेस में लेनदेन के दायरे में डेटा नहीं देख सकती हैं।

आपको यह कार्य ट्रिगर के साथ नहीं करना चाहिए। सबसे अच्छा, आपको "ध्वज" कॉलम सेट करने के लिए ट्रिगर का उपयोग करना चाहिए और फिर ध्वज सेट के साथ पंक्तियों को देखने के लिए बाहरी प्रक्रिया लिखना चाहिए और फिर उस PHP स्क्रिप्ट का आह्वान करना चाहिए। इस तरह केवल सफलतापूर्वक डाली गई और प्रतिबद्ध पंक्तियों को ही संसाधित किया जाएगा।



  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 के लिए एक कमजोर एस्केप फंक्शन मिला, कैसे शोषण करें?

  2. उन पंक्तियों का चयन करना जहाँ PHP PDO तैयार कथनों और MySQL का उपयोग करके कोई फ़ील्ड रिक्त है

  3. MySQL में संग्रहित प्रक्रियाओं का बैकअप कैसे लें

  4. मेरी एसक्यूएल चयन क्वेरी से पूर्णांक के अल्पविराम को कैसे हटाएं

  5. MySQL और Splunk - चुनें और जुड़ें