ios - 在 iOS 中向 SQLite 添加新列

标签 ios sqlite

如果该列不可用,我正在尝试将两个新列插入到我的 SQLite 数据库中。一切都很顺利,“添加”的 BOOL 也为 YES。但这些列不在我的 table 上!

-(void)checkColumnExists
{
    NSString *dbPath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"movieData.sqlite"];
    const char *dbpath = [dbPath UTF8String];
    sqlite3 *contactDB;

    sqlite3_open(dbpath, &contactDB);

    sqlite3_stmt *selectStmt;

    const char *sqlStatement = "SELECT borrowMovie from myMovies";
    if(sqlite3_prepare_v2(contactDB, sqlStatement, -1, &selectStmt, NULL) != SQLITE_OK){
        //ALTER TABLE {tableName} ADD COLUMN COLNew {type};
        const char *sqlStatement1 = "ALTER TABLE myMovies ADD COLUMN borrowMovie TEXT, borrowDate TEXT";
        BOOL added = sqlite3_prepare_v2(contactDB, sqlStatement1, -1, &selectStmt, NULL);
    }
} 

最佳答案

您需要在 sqlite3_prepare_v2() 之后至少调用一次 sqlite3_step()。这是实际执行查询的函数。如果您正在读取一些 SELECT 结果,您将需要多次调用该函数(对于每一行),但如果您只是执行一个没有结果的查询,则只需要一次调用。

关于ios - 在 iOS 中向 SQLite 添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30703696/

相关文章:

ios - 无法访问 NSArray 中实例的属性

ios - 如何设置按钮的 UIEdgeinsets 值

android - 如何在 TextView 中从数据库 SQLITE 中获取特定数据?

sql - ms logparser导出到sql语句

ios - Xcode 7 本地化锁定在哪里?

ios - 通过 Facebook Graph API 快速获取个人资料图片返回 "unsupported URL"

iphone - iPhone 应用程序内的多种语言选择选项

python sqlite3 从 excel 创建数据库

php - laravel 5.2 sqlite 连接错误

android - 如何从 Android 手机与服务器的数据库通信?