2017-02-10 4 views
0

Ich möchte einen Trigger erstellen, um einen Wert in eine andere Tabelle einzufügen, wenn ein Wert in die erste Tabelle eingefügt wird.So fügen Sie einen Wert aus einer anderen Tabelle über den Trigger ein

Bisher sieht meine Trigger wie folgt aus:

CREATE TRIGGER tgIdPass 
AFTER INSERT 
ON tbuser FOR EACH ROW 

BEGIN 

DECLARE vIdPass INT 
SET vIdPass = NEW.id 
INSERT INTO tbpass.fkUser VALUES vIdPass 
END 

Wenn ich versuche, den Code auszuführen, ist es diesen Fehler „gibt # 1064 - Sie haben einen Fehler in der SQL-Syntax, das Handbuch, das entspricht Ihre MariaDB Server-Version für die richtige Syntax in der Nähe von ‚SET vIdPass = NEW.id iN END vIdPass tbpass.fkUser VALUES INSERT‘ verwendet in Zeile 8"

So kann jemand beleuchten meint, warum ich diesen Fehler bin immer?

+0

Sollte es kein Semikolon sein ';' 'nach ERKLÄREN vIdPass INT' –

+0

Es gibt keine Notwendigkeit für die Variable. Tun Sie einfach 'INSERT INTO tbpass.fkUser VALUES (NEW.id)' – Barmar

Antwort

1

Benötigen DELIMITERs und Anweisungsterminatoren.

DELIMITER // 
CREATE TRIGGER tgIdPass 
AFTER INSERT 
ON tbuser FOR EACH ROW 

BEGIN 

DECLARE vIdPass INT; -- terminate statements 
... 
END 
// 
DELIMITER ; 
Verwandte Themen