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

ट्रिगर में अद्यतन के बाद एक ही पंक्ति अद्यतन करें

आप तालिका में पंक्तियों को बाद . में अपडेट नहीं कर सकते ट्रिगर अपडेट करें।

शायद आप कुछ ऐसा चाहते हैं:

CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
    SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);

संपादित करें:

एक ट्रिगर के अंदर, आपके पास OLD . तक पहुंच होती है और NEW . OLD रिकॉर्ड में पुराने मान हैं और NEW नए मूल्य हैं। एक पहले . में ट्रिगर, NEW मान वे हैं जो तालिका में लिखे जाते हैं, इसलिए आप उन्हें संशोधित कर सकते हैं। एक बाद . में ट्रिगर, NEW मान पहले ही लिखे जा चुके हैं, इसलिए उन्हें संशोधित नहीं किया जा सकता है। मुझे लगता है कि MySQL प्रलेखन यह बहुत अच्छी तरह से समझाता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका का उपयोग न करने वाली दो तिथियों के बीच सभी तिथियों का चयन करें (तिथियों की सूची बनाएं)

  2. Laravel:एक MySQL क्वेरी से एकल मान प्राप्त करना

  3. MySQL सम्मिलित त्रुटि:ER_BAD_FIELD_ERROR:'फ़ील्ड सूची' में अज्ञात कॉलम '2525'

  4. MySQL लोड डेटा:यह कमांड अभी तक तैयार स्टेटमेंट प्रोटोकॉल में समर्थित नहीं है

  5. yii2 में माइग्रेशन के दौरान अपवाद 'ड्राइवर नहीं मिल सका'