2017-04-26 7 views
0

Ich versuche, eine MySQL-Trigger einzufügen zu schreiben:undefiniert Fehler mit MySql Insert-Trigger

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; 

Aber es gibt einen Fehler in meiner SQL-Syntax. Ich kann die Lösung nicht finden. Könnte mir bitte jemand helfen?

+0

Was ist der Fehler, den Sie bekommen? – msitt

+0

1.) "Syntaxfehler: fehlendes Semikolon" nach der letzten schließenden Klammer 2.) "Ende ist keine gültige Eingabe an dieser Position" bei "ENDE IF;" danke –

Antwort

0

Versuchen Sie, diese IF (NEW.DOKUMENTTYP LIKE 'test' UND NEW.STATUS LIKE 'neu') ...

+0

Gleiche Fehler wieder: "fehlende Semikolon" nach der letzten schließenden Klammer und "Ende ist keine gültige Eingabe an dieser Position" bei "ENDE IF;" ... –

+0

Wie @Devart sagte, müssen Sie Ihrem Code "BEGIN" und "END" hinzufügen –

0

Trigger Körper enthält mehr eine Aussage dann, es bedeutet, dass BEGIN..END Schlüsselwörter sein müssen benutzt. Und fügen Sie bei Bedarf DELIMITER hinzu:

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 ; 
Verwandte Themen