3

在 SQLite 中考虑这个 SQL:

CREATE TABLE X (Xid INTEGER PRIMARY KEY);
CREATE TABLE Y (Yid INTEGER PRIMARY KEY, Xid INTEGER NOT NULL);
CREATE TABLE Z (Yid INTEGER PRIMARY KEY, Blah INTEGER NOT NULL);

CREATE TRIGGER IF NOT EXISTS OnDeleteX
    BEFORE DELETE ON X
    FOR EACH ROW BEGIN
        DELETE FROM Y WHERE Xid = OLD.Xid;
    END;

CREATE TRIGGER IF NOT EXISTS OnDeleteY
    BEFORE DELETE ON Y
    FOR EACH ROW BEGIN
        DELETE FROM Z WHERE Yid = OLD.Yid;
    END;

当我删除一行时,X我希望它的链接项目Y 也会 Z被删除。我已经使用 SQLite 3.7.11 在我的 PC 上验证了这种行为。在 Android 4.0.4 上,这似乎不起作用。

问: Android 上的 SQLite 是否支持级联触发器?即触发其他触发器的触发器。

此外,是否某种事务会阻止触发器工作?

4

0 回答 0