插入到另一个数据库只插入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); 
     } 
    } 
} 

我想,也许你错误地重用你的变量strSQLchrStmt,尤其是cmpStmt。这既用于while环路条件和主体。

尝试对其他数据库使用单独的变量。