2012-02-13 66 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