【发布时间】:2011-12-20 14:26:37
【问题描述】:
在 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);
但是当我删除一个场地时,子事件并没有被删除。有什么想法吗?
【问题讨论】:
-
我无法在 3.7.4 中重现该行为。您确定在删除场地之前设置了
PRAGMA foreign_keys = ON吗? (这是连接设置,不是数据库设置。) -
这很奇怪。我确实犯了一个错误,没有在每个连接上都设置它,但是当我修复它并没有帮助时。您是否在 iPhone 模拟器中尝试过这个?因为我让它在 navicat for sqlite 中工作,而不是在模拟器中。
-
好的,我只是在模拟器中使用最简单的代码进行了尝试,它可以工作,所以错误一定在其他地方。谢谢。
-
当你想通了,回答你自己的问题,并接受你的答案。可能发生在其他人身上。
-
另外,我没有使用 iPhone 模拟器。当事情出错时,分而治之。使用 SQLite 命令解释器是一种将问题隔离到数据库或其他所有问题的简单方法。
标签: sqlite