插入到另一个数据库只插入1条记录
问题描述:
我想从一个表中取出数据并将其移动到另一个表。首先,我从db_data数据库的Items表中选择所有记录。然后,对于该表中的每条记录,都应该将其插入到db_information数据库中的Items表中。我只能将一条记录写入db_information数据库的我的Items表中。我在db_data数据库的Items表中有8条记录。那为什么不插入我所有的记录?插入到另一个数据库只插入1条记录
strSQL = @"SELECT GID FROM Items";
chrStmt = [strSQL UTF8String];
if(sqlite3_prepare_v2(db_data, chrStmt, -1, &cmpStmt, NULL) == SQLITE_OK){
while(sqlite3_step(cmpStmt) == SQLITE_ROW){
char *val = (char *)sqlite3_column_text(cmpStmt, 0);
NSString *strVal = [NSString stringWithUTF8String:val];
strSQL = [NSString stringWithFormat:@"INSERT INTO Items (GID) VALUES ('%@')", strVal];
chrStmt = [strSQL UTF8String];
if(sqlite3_prepare_v2(db_information, chrStmt, -1, &cmpStmt, NULL) == SQLITE_OK){
sqlite3_step(cmpStmt);
}
}
}
答
我想,也许你错误地重用你的变量strSQL
,chrStmt
,尤其是cmpStmt
。这既用于while
环路条件和主体。
尝试对其他数据库使用单独的变量。