如何在SQLite中使用Trigger删除嵌套子项

时间:2014-04-14 16:55:15

标签: sql sqlite recursive-query triggers

我需要使用触发器删除表中的嵌套项。我有一个文件夹表,表有一个Id和parrentID。例如

ID     FolderName       ParentID
--------------------------------
1          A              Null
2          B              1
3          C              2
4          D              3

如果我删除ID 1,那么它将删除所有记录2,3,4,因为1是顶级父级。有什么办法吗?

1 个答案:

答案 0 :(得分:0)

documentation

  

[recursion]不能在CREATE TRIGGER中使用。

但是,如果正确声明关系,则可以告诉数据库to delete the children automatically

CREATE TABLE MyTable(
    ID INTEGER PRIMARY KEY,
    FolderName TEXT,
    ParentID INTEGER REFERENCES MyTable(ID) ON DELETE CASCADE
);