2017-04-26 139 views
0

未定義的錯誤我想寫一個MySQL INSERT觸發器:與MySQL INSERT觸發器

CREATE TRIGGER `trigger1` BEFORE INSERT ON `COMPANY` 
FOR EACH ROW 

IF NEW.DOKUMENTTYP LIKE 'test' 
AND NEW.STATUS LIKE 'neu' 
THEN 
INSERT INTO my_tools.testimport(processname, version, step, insstring, initiator) 
VALUES ('COMPANY_ER', 0, 1, CONCAT('DWDOCID=', NEW.DWDOCID) , 'robot'); 
END IF; 

但是,在我的SQL語法錯誤。我找不到解決方案。有誰能幫我嗎?

+0

什麼是您收到的錯誤? – msitt

+0

1)最後一個右括號後面的「語法錯誤:缺少分號」 2)「END IF;」結束在此位置輸入無效「 謝謝 –

回答

0

試試這個 IF(NEW.DOKUMENTTYP LIKE '測試' AND NEW.STATUS LIKE 'NEU')......

+0

再次出現同樣的錯誤:在最後一個右括號後面出現「丟失分號」,並在「END IF;」處出現「end is not valid input in this position」 ... –

+0

由於@Devart表示您需要在代碼中添加「BEGIN」和「END」 –

0

觸發器體包含一個以上的說法,這意味着BEGIN..END關鍵字必須用過的。如果需要,請添加DELIMITER:

DELIMITER $$ 

CREATE TRIGGER `trigger1` 
BEFORE INSERT 
ON `Company` 
FOR EACH ROW 
BEGIN 
    IF NEW.DOKUMENTTYP LIKE 'test' AND NEW.Status LIKE 'neu' THEN 
    INSERT INTO my_tools.testimport (processname, VERSION, step, insstring, initiator) 
     VALUES ('COMPANY_ER', 0, 1, CONCAT('DWDOCID=', NEW.DWDOCID), 'robot'); 
    END IF; 
END$$ 

DELIMITER ;