在SQLite for iOS(3.7.7)中,我正在运行这些查询:
PRAGMA foreign_keys = ON;
create table venue(id integer primary key not null, name text not null);
create table event(id integer primary key not null, name text not null,
venue_id integer references venue(id) on delete cascade);
但是当我删除一个场地时,子项目事件不会被删除。有什么想法吗?
答案 0 :(得分:2)
我遵循了Catcall的说法,它对我有用:通过运行
设置foreign_keys
stmt.execute("PRAGMA foreign_keys = ON");
每次我建立与数据库的连接。
答案 1 :(得分:0)
问题似乎是在不同线程中使用多个句柄虽然已同步。由于iOS中包含的sqlite足够新,只要它们被正确同步就允许跨线程使用一个句柄,使用一个句柄而不是几个句柄应该使这成为一个没问题。但我有兴趣了解如何以及其他人是否解决了这个问题。