gpt4 book ai didi

mysql - MySQL中BEGIN和END的正确使用

转载 作者:行者123 更新时间:2023-11-29 21:14:25 25 4
gpt4 key购买 nike

我刚刚从使用 Apache 的 Derby 数据库切换到 MySQL,并且仍在熟悉语法。我阅读了有关触发器的文档,并且我认为我正确地遵循了语法。但是,我在 BEGINEND 方面遇到问题,如果我输入 BEGINEND<,下面的插入触发器将不起作用我什至尝试输入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;

删除 BEGINEND 可以使其工作,但我无法充分利用复合语句。

CREATE TRIGGER COPY_INSERTED_USERID_TO_ALLUSERS_PERMISSIONS 
AFTER INSERT ON ALLUSERS
FOR EACH ROW

INSERT INTO ALLUSERS_ADMIN_PERMISSIONS(USERID)
VALUES(NEW.USERID);

enter image description here

如果有任何帮助,我将不胜感激。谢谢。

编辑:

我尝试遵循@Ilanatos 的建议,该建议有效,但在第一次尝试时返回错误。我必须刷新 phpmyadmin 页面才能消除该错误。以下是屏幕截图。

enter image description here

然后,如果我刷新页面(Firefox 和 Chrome),我就会看到触发器。

enter image description here

我认为它不应该在执行创建触发器定义期间返回错误消息。

最佳答案

创建触发器时尝试使用分隔符功能。

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 ;

关于mysql - MySQL中BEGIN和END的正确使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36085433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com