2017-02-10 58 views
0

我想创建一个触发器,以便在第一个表中插入一个值时将值插入另一个表中。如何通过触发器从另一个表中插入值

到目前为止,我的触发看起来是这样的:

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 

当我尝试运行代码,它给这个错误“#1064 - 你在你的SQL语法错误;检查符合手册您的MariaDB服务器版本的正确语法使用附近'SET vIdPass = NEW.id插入tbpass.fkUser VALUES vIdPass END'在第8行“

所以任何人都可以照亮我为什么我得到这个错误?

+0

不应该有一个分号';''后DECLARE vIdPass INT' –

+0

没有必要的变量。只要执行'INSERT INTO tbpass.fkUser VALUES(NEW.id)' – Barmar

回答

1

需要DELIMITERs和语句结束符。

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

BEGIN 

DECLARE vIdPass INT; -- terminate statements 
... 
END 
// 
DELIMITER ; 
相关问题