मुझे एक MySQL डेटाबेस के लिए ट्रिगर को परिभाषित करने में समस्या है। मैं एक नई पंक्ति डालने से पहले एक टेक्स्टफील्ड को बदलना चाहता हूं (किसी दिए गए शर्त के तहत)। मैंने यह कोशिश की है:MySQL डेटाबेस (वाक्यविन्यास त्रुटि) में तालिका के लिए ट्रिगर बनाना
CREATE TRIGGER add_bcc
BEFORE INSERT ON MailQueue
FOR EACH ROW BEGIN
IF (NEW.sHeaders LIKE "%sup[email protected]%") THEN
SET NEW.sHeaders = NEW.sHeaders + "BCC:[email protected]";
END IF;
END;
लेकिन हमेशा मुझे "गलत वाक्यविन्यास" त्रुटि मिलती है। मैं अटक गया, मैं क्या गलत कर रहा हूँ? मैं MySQL 5.0.51a-समुदाय
BTW उपयोग कर रहा हूँ: इस तरह एक खाली ट्रिगर बनाना ठीक काम करता है:
CREATE TRIGGER add_bcc
BEFORE INSERT ON MailQueue
FOR EACH ROW BEGIN
END;
लेकिन यह विफल रहता है, भी:
CREATE TRIGGER add_bcc
BEFORE INSERT ON MailQueue
FOR EACH ROW BEGIN
IF 1=1 THEN
END IF;
END;
यह मेरी stackoverflow.com का उपयोग करने के लिए पहली बार, इसलिए मैं बहुत उत्साहित हूं अगर यह यहां कुछ पोस्ट करने में मददगार है :-)
क्या आप "सेट करें" को दूर होता तो क्या होगा? साथ ही आपको CONCAT (NEW.sHeaders, "BCC: [email protected]") पर 0.sपर NEW.sHeaders + "BCC: [email protected]" को बदलना चाहिए। – Greg
मैं इसे एक टिप्पणी नहीं दे रहा हूं क्योंकि यह अनुमान है: पी – Greg
धन्यवाद! मैंने कोशिश की है, लेकिन वाक्यविन्यास त्रुटि अगर कथन के कारण होती है। यहां तक कि निम्न में विफल रहता है: TRIGGER add_bcc बनाएँ सम्मिलित करने से पहले MailQueue पर प्रत्येक पंक्ति के लिए शुरू समाप्त करते हैं यदि 1 = 1 तब ; अंत; अफसोस की बात है, MySQL कोई अच्छा संकेत नहीं देता है कि त्रुटि क्या है ... –