更改 Sqlite 数据库 table 并更新 iOS 的查询

Alter Sqlite Database table and Update query for iOS

我已经编写了 SQLITE 插入查询以在 sqlite 数据库中插入一些数据 table。但是现在我正在尝试在该 sqlite table 中添加一个新列并向该列插入新值。因此,每当我尝试更新我的数据库 table 时,它应该每次都创建一个新列并更新并给我插入新值。 下面是我通过单击按钮进行的​​更改和更新代码。

-(void)updateStatusData:(NSString *)txt {

sqlite3_stmt    *statement;
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
databasePath = [docsDir stringByAppendingPathComponent:@"db.sqlite"];

NSLog(@"%@",databasePath);
if (sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK)
{



  NSString *updateSQL = [NSString stringWithFormat:@"ALTER TABLE STATUS ADD COLUMN newcolumn; UPDATE STATUS SET newcolumn=%@ WHERE rowid=1",txt];

    const char *update = [updateSQL UTF8String];
    NSLog(@"update statmnt %s",update);
    sqlite3_prepare_v2(database, update, -1, &statement, NULL);
    if (sqlite3_step(statement) == SQLITE_DONE)
    {
        sqlite3_bind_text(statement, 1, [txt UTF8String], -1, SQLITE_TRANSIENT);
        NSLog(@" Status Results Updated Successfully");

    } else {
        NSLog(@"error %s",sqlite3_errmsg(database));
    }
    sqlite3_finalize(statement);
    sqlite3_close(database);
}
}

我的新列名称是 newcolumn,它应该保存的值在 'txt' 中。 我的问题是,每当我 运行 这段代码时,我都会在我的 sqlite 数据库 table 中插入一个新列。但是对于该新列,插入的值是 NULL。 该代码应该 运行 就像您在 WHATSAPP 上更新状态时的方式一样,它会保存更新后的状态... 请帮助我我做错了什么。任何帮助表示赞赏。

不要运行两者一起查询。进行两个单独的查询,一个用于添加列,一个用于更新 table。所以 运行 两个不同的语句而不是一个。