【问题标题】:iPhone: Create sqlite database with foreign key supportediPhone:创建支持外键的 sqlite 数据库
【发布时间】:2012-02-13 19:48:34
【问题描述】:

我正在开发一个 iPhone 应用程序,我需要将大量数据存储在 sqlite3 数据库中。

我想为以下示例创建具有外键约束的表。如何使用 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))",

【问题讨论】:

    标签: iphone sqlite


    【解决方案1】:

    在 iPhone 上使用 SQLite 最简单的方法是使用 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 之类的内容可能会更好,具体取决于您的情况。

    【讨论】:

    • 感谢您的回复。但是,我只是要创建、更新、阅读记录。是否可以在 Firefox 中使用 sqlitemanager 创建数据库?但是,我没有在其中看到 FOREIGN KEY。
    • 如果你想在firefox sqlite manager中创建,只需将那些sql语句放在页面右侧的“Execute SQL”选项卡中即可。
    • 哦,好的,谢谢!那应该可以正常工作吧?如果我在“执行 SQL”的查询中添加 FOREIGN KEY,那也会显示在那里?
    • 是的,您需要做的就是将外键放在 CREATE TABLE 语句中。如果答案对您有帮助,请考虑按下接受按钮 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多