亲爱的杰出程序员,
我正在尝试在我的应用程序数据库中创建trigger
,以基于多种条件删除表中的行并删除另一表中的表,在这里我可以使用一些帮助。
这是我的trigger
CREATE TRIGGER RemoveAccountReports
AFTER DELETE ON Accounts
FOR EACH ROW
WHEN Reports.Parent_Type = ACCOUNT
BEGIN
DELETE FROM Reports
WHERE Parent_ID = OLD.Account_ID;
END;
我需要从Reports
表中删除,其中Accounts
表中Reports.Parent_ID = Accounts.Account_ID
的每一个删除。
但仅当Reports.Parent_type = "ACCOUNT"
我该如何实现?
提前谢谢。
答案 0 :(得分:1)
在我看来,您在ACCOUNT周围缺少报价;应该是:
WHEN Reports.Parent_Type = 'ACCOUNT'
(请注意,单引号应与字符串一起使用。)
答案 1 :(得分:0)
当您执行语句时,将出现此错误:
no such column: Reports.Parent_Type
解决方案:
CREATE TRIGGER RemoveAccountReports
AFTER DELETE ON Accounts
FOR EACH ROW
BEGIN
DELETE FROM Reports
WHERE Parent_ID = OLD.Account_ID AND Reports.Parent_Type = 'ACCOUNT' ;
END;