2012-02-13 32 views
0

我正在开发一个iPhone应用程序,我需要在sqlite3数据库中存储大量数据。iPhone:创建支持外键的sqlite数据库

我想为下面的一个例子创建具有外键约束的表。我如何使用sqlite或编程创建下表?

请指教!

"CREATE TABLE List (_id INTEGER PRIMARY KEY, ListId INTEGER UNIQUE, ListName TEXT, nameId INTEGER, FLAG BOOL)", 
"CREATE TABLE User (_id INTEGER PRIMARY KEY, Name TEXT, ListId INTEGER, FOREIGN KEY(ListId) REFERENCES List(ListId))", 

回答

0

使用SQLite在iPhone上的最简单的方法是使用SQLite C API的包装,如fmdb

例如

NSString* databasePath = //path to where you want to store it on disk 
FMDatabase* database = [FMDatabase databaseWithPath:databasePath]; 
[database open]; 
[self.database executeUpdate:@"CREATE TABLE List (_id INTEGER PRIMARY KEY, ListId INTEGER UNIQUE, ListName TEXT, nameId INTEGER, FLAG BOOL)"]; 
[self.database executeUpdate:@"CREATE TABLE User (_id INTEGER PRIMARY KEY, Name TEXT, ListId INTEGER, FOREIGN KEY(ListId) REFERENCES List(ListId))"]; 

虽然,使用低级别SQLite库可以是矫枉过正。根据您的情况,Core Data可能会更好。

+0

感谢您的回复。但是,我只是要创建,更新,阅读记录。是否有可能在Firefox中使用sqlitemanager创建数据库?但是,我没有看到FOREIGN KEY。 – Getsy 2012-02-13 20:34:55

+0

如果你想在firefox sqlite管理器中创建它,只需将这些sql语句放在页面右侧的“Execute SQL”选项卡中。 – DHamrick 2012-02-13 20:38:12

+0

噢,好的,谢谢!这应该正常工作吗?如果我在“执行SQL”中的查询中添加FOREIGN KEY,那么也会在那里显示? – Getsy 2012-02-13 20:48:23