如何通过触发器从另一个 table 中插入一个值
How to insert a value from a in another table via trigger
我想创建一个触发器,当在第一个 table 中插入一个值时,在另一个 table 中插入一个值。
到目前为止我的触发器是这样的:
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 服务器版本的手册在第 8 行 'SET vIdPass = NEW.id INSERT INTO tbpass.fkUser VALUES vIdPass END' 附近使用的正确语法
所以任何人都可以阐明我为什么会收到此错误?
需要 DELIMITERs
和语句终止符。
DELIMITER //
CREATE TRIGGER tgIdPass
AFTER INSERT
ON tbuser FOR EACH ROW
BEGIN
DECLARE vIdPass INT; -- terminate statements
...
END
//
DELIMITER ;
我想创建一个触发器,当在第一个 table 中插入一个值时,在另一个 table 中插入一个值。
到目前为止我的触发器是这样的:
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 服务器版本的手册在第 8 行 'SET vIdPass = NEW.id INSERT INTO tbpass.fkUser VALUES vIdPass END' 附近使用的正确语法
所以任何人都可以阐明我为什么会收到此错误?
需要 DELIMITERs
和语句终止符。
DELIMITER //
CREATE TRIGGER tgIdPass
AFTER INSERT
ON tbuser FOR EACH ROW
BEGIN
DECLARE vIdPass INT; -- terminate statements
...
END
//
DELIMITER ;