我刚刚使用Apache的Derby数据库切换到MySQL,并且仍然熟悉语法。我阅读了有关触发器的文档,我认为我正确地遵循了语法。但是,我遇到问题BEGIN
和END
如果我放BEGIN
和END
,我的插入触发器不起作用我甚至尝试放DELIMITER
但它没有解决它。
CREATE TRIGGER COPY_INSERTED_USERID_TO_ALLUSERS_PERMISSIONS
AFTER INSERT ON ALLUSERS
FOR EACH ROW
BEGIN
INSERT INTO ALLUSERS_ADMIN_PERMISSIONS(USERID)
VALUES(NEW.USERID);
END;
删除BEGIN
和END
会使其有效,但我无法充分利用复合语句。
CREATE TRIGGER COPY_INSERTED_USERID_TO_ALLUSERS_PERMISSIONS
AFTER INSERT ON ALLUSERS
FOR EACH ROW
INSERT INTO ALLUSERS_ADMIN_PERMISSIONS(USERID)
VALUES(NEW.USERID);
我很感激任何帮助。 感谢。
编辑:
我试图遵循@Ilanatos建议,但是第一次尝试时会返回错误。我不得不刷新phpmyadmin页面以摆脱错误。 以下是截图。
然后,如果我刷新页面(Firefox和Chrome),我会看到触发器。
我认为在执行创建触发器定义时不应该返回错误消息。
答案 0 :(得分:0)
在创建触发器时尝试使用分隔符功能。
DELIMITER $$
CREATE TRIGGER COPY_INSERTED_USERID_TO_ALLUSERS_PERMISSIONS
AFTER INSERT ON ALLUSERS
FOR EACH ROW BEGIN
INSERT INTO ALLUSERS_ADMIN_PERMISSIONS(USERID)
VALUES(NEW.USERID);
END$$
DELIMITER ;