【问题标题】:How to insert a value from a in another table via trigger如何通过触发器从另一个表中插入一个值
【发布时间】:2017-02-10 21:03:03
【问题描述】:

我想创建一个触发器,以便在第一个表中插入一个值时在另一个表中插入一个值。

到目前为止,我的触发器如下所示:

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 INSERT INTO tbpass.fkUser VALUES vIdPass END' at line 8"

所以任何人都可以阐明我为什么会收到此错误?

【问题讨论】:

  • DECLARE vIdPass INT后面不应该有分号;
  • 不需要变量。就做INSERT INTO tbpass.fkUser VALUES (NEW.id)

标签: mysql mariadb


【解决方案1】:

需要DELIMITERs 和语句终止符。

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

BEGIN

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 2018-07-25
    • 2019-09-30
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多