【发布时间】:2014-08-11 08:04:01
【问题描述】:
今天我注意到我的 SQLite 表上的外键约束不起作用。在阅读 Stack Overflow 后,我发现应该启用此功能。所以,我一直在寻找代码 sn-p 来做这件事。到目前为止,我只能找到这个:
[self.db executeUpdate:@"PRAGMA foreign_keys=ON"];
但这似乎对我不起作用,因为编译器总是抱怨。我看到人们将这条线用于FMDatabase 类型(我什至不知道它是什么)。
那么,如果我像这样打开数据库连接,如何启用外键约束:
- (void) openDatabase
{
const char* databaseFile = [[self pathToDatabaseFile:@"readlater.sql"] UTF8String];
sqlite3 *connection;
if (sqlite3_open(databaseFile, &connection) != SQLITE_OK) {
return;
}
self.db = connection;
}
还是应该在创建表格时完成? 谢谢。
【问题讨论】:
-
FMDatabase类是FMDB library 的一部分,FMDB library 是一个围绕 SQLite C API 的精简 Objective-C 包装器。使用 FMDB 可以大大简化你的 SQLite 代码。 -
@Rob,谢谢你帮我解决这个问题。我会仔细阅读。
标签: ios objective-c sqlite foreign-keys