我是这个话题的新手。我想要这样的东西。
我的 sqliteDatabase 中有两个表,一个是主表,另一个是子表。现在,如果我从 master 中删除一条记录,假设我从 master 中删除 id=5 的行,那么子表中 id = 5 的所有记录都会自动删除。我不知道如何创建触发器以及如何应用外键约束,所以请有人告诉我在 Firefox 的 sqlite3 Manager 中执行此操作的方法。谢谢
我是这个话题的新手。我想要这样的东西。
我的 sqliteDatabase 中有两个表,一个是主表,另一个是子表。现在,如果我从 master 中删除一条记录,假设我从 master 中删除 id=5 的行,那么子表中 id = 5 的所有记录都会自动删除。我不知道如何创建触发器以及如何应用外键约束,所以请有人告诉我在 Firefox 的 sqlite3 Manager 中执行此操作的方法。谢谢
您不需要触发器,如果您定义,您的外键将执行此操作ON DELETE CASCADE
:
CREATE TABLE child(
id INTEGER,
some_info TEXT,
master_id INTEGER,
FOREIGN KEY(master_id) REFERENCES master(id) ON DELETE CASCADE
);
请参阅有关外键的文档。
编辑:
如果您确实需要使用触发器来执行此操作,请查看Foreing Key Triggers。