2017-04-26 110 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 ;