आपके MySQL क्लाइंट के लिए ;
. की व्याख्या न करने के लिए जो INSERT
. को समाप्त करता है CREATE TRIGGER
. के अंत के रूप में स्टेटमेंट बयान, आपको यह सूचित करना होगा कि आप किसी अन्य कथन सीमांकक का उपयोग करना चाहते हैं।
mysql
में
कमांड-लाइन क्लाइंट, आप इसे DELIMITER
. के साथ कर सकते हैं कमांड
. उदाहरण के लिए, अपने स्टेटमेंट डिलीमीटर को डबल-सेमीकोलन में बदलने के लिए:
DELIMITER ;;
तब आप यह कर सकते हैं:
CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG FOR EACH ROW BEGIN
INSERT INTO WORKLOG_BACKUP VALUES (
NULL,
CURRENT_TIMESTAMP,
NEW.LOGNO,
NEW.JOBNO,
NEW.EMPLOYEENO,
NEW.WORKDATE,
NEW.WORKTIME,
'UPDATE'
);
END;;
हालांकि, क्योंकि इस मामले में आपके ट्रिगर में केवल एक कथन है, आपको BEGIN ... END
कंपाउंड स्टेटमेंट ब्लॉक
और इसलिए पूरी तरह से सीमांकक बदलने से बच सकते हैं:
CREATE TRIGGER LOG_UPDATE BEFORE UPDATE ON WORKLOG FOR EACH ROW
INSERT INTO WORKLOG_BACKUP VALUES (
NULL,
CURRENT_TIMESTAMP,
NEW.LOGNO,
NEW.JOBNO,
NEW.EMPLOYEENO,
NEW.WORKDATE,
NEW.WORKTIME,
'UPDATE'
)
;