आप तालिका में पंक्तियों को बाद . में अपडेट नहीं कर सकते ट्रिगर अपडेट करें।
शायद आप कुछ ऐसा चाहते हैं:
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 प्रलेखन
यह बहुत अच्छी तरह से समझाता है।