【发布时间】:2016-04-05 00:06:57
【问题描述】:
我在删除databaseA员工表中的一行后尝试执行触发器删除,具有相同employeeid的databaseB作者表也将被删除。但是经过几次尝试,它一直提示触发器有错误,而没有指定错误是什么。这是我的代码。谢谢。
DELIMITER //
CREATE OR REPLACE TRIGGER employee_delete
AFTER DELETE on databaseA.employee
FOR EACH ROW
BEGIN
DELETE FROM databaseB.author
WHERE databaseB.author.employeeid = old.employeeid
END;
/
【问题讨论】:
-
做
show errors,或者查询user_errors视图,查看实际的编译错误。 “数据库”是指“模式”吗?您在:old之前缺少一个冒号,但不确定这是否是唯一的问题。 -
DELETE 语句后缺少分号;你甚至需要
:old而不是old -
this question 可能重复,如果这是唯一的错误。
-
我添加了冒号 WHERE databaseB.author.employeeid = :old.employeeid 但仍然出现错误。
-
您是否也在删除语句的末尾添加了分号?正如我之前所说,使用
show errors来查看问题所在。