gpt4 book ai didi

mysql - mysql触发器查询语法错误

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

所以我有以下查询:

CREATE TRIGGER `before_delete`
BEFORE DELETE ON `abc` FOR EACH ROW
BEGIN
DELETE FROM def WHERE OLD.id = objID1 OR OLD.id = objID2;
DELETE FROM ghi WHERE OLD.id = objID;
END;

但随后 mysql 提示第 1 行的“END”附近存在语法错误....

我做错了什么?

最佳答案

您需要使用 DELIMTIER 技巧在过程 block 中包含多个语句。否则它无法区分过程的结尾和其中语句的结尾。关于documentation页面中,有一个使用 delimiter 关键字的示例。

为了省去您转到该页面并环顾四周的麻烦,我认为这可以解决问题:

DELIMITER $$
CREATE TRIGGER `before_delete`
BEFORE DELETE ON `abc` FOR EACH ROW
BEGIN
DELETE FROM def WHERE OLD.id = objID1 OR OLD.id = objID2;
DELETE FROM ghi WHERE OLD.id = objID;
END $$
DELIMITER ;

关于mysql - mysql触发器查询语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7788607/

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