基于sqlite中的多个条件创建触发器

时间:2018-12-07 14:51:35

标签: android database sqlite android-sqlite

亲爱的杰出程序员, 我正在尝试在我的应用程序数据库中创建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"

我该如何实现?

提前谢谢。

2 个答案:

答案 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;