如果该列不可用,我正在尝试在SQLite数据库中插入两个新列。一切都很好,“添加的”布尔值为“是”。但是这些列不在我的桌子上!
-(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_step()
之后,您至少需要调用一次sqlite3_prepare_v2()
。这是实际执行查询的功能。如果要读取某些SELECT
结果,则需要多次(对于每一行)调用该函数,但是,如果仅执行不带结果的查询,则只需要一次调用。
关于ios - 在iOS中将新列添加到SQLite,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30703696/