MySQL 触发器:删除后从表中删除 - 语法错误和解决方案
尝试创建触发器以从“patron_info”中删除行时从“patrons”表中删除一行后,可能会遇到“检查第 6 行 END 附近的语法”的错误消息。此错误表示触发器代码中存在语法错误。
提供的触发器代码当前在 DELETE 语句的 WHERE 子句中存在语法错误:
DELETE FROM patron_info WHERE patron_info.pid = patrons.id
这里的问题是触发器使用“patrons”别名引用“patrons”表,该别名仅在触发器的 BEGIN 和 END 块中可用。要解决此问题,DELETE 语句应改为引用“旧”别名,它表示从“顾客”表中删除的行:
DELETE FROM patron_info WHERE patron_info.pid = old.id
经过此更正,触发器代码现在应该为:
CREATE TRIGGER log_patron_delete AFTER DELETE on patrons FOR EACH ROW BEGIN DELETE FROM patron_info WHERE patron_info.pid = old.id; END
此外,确保 DELETE 语句以分号 (;) 结尾以终止该语句也很重要。在控制台输入触发代码时,还应该使用分隔符来定义触发边界。
以上是为什么在删除后创建 MySQL 触发器以从表中删除时出现'检查第 6 行接近 END 的语法”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!