【发布时间】:2015-07-09 12:56:45
【问题描述】:
我的数据库中有一个表。我想将值添加到表中的特定列。由于我的表中有数千行,我想我必须使用批量更新。代码是这样的,但我收到语法错误和一条消息,说没有这样的行:
NSString *addProductColQuery = @"ALTER TABLE Sale ADD COLUMN Product text";
[self.dbManager loadDataFromDB:addProductColQuery];
NSString *batchstart = @"BEGIN IMMEDIATE TRANSACTION";
[self.dbManager loadDataFromDB:batchstart];
for (int i = 0; i<self.productInfo.count; i++)
{
NSString *addValue = [NSString stringWithFormat:@"INSERT INTO Sale (Product) VALUES (%@)",[tempProductArray objectAtIndex:i]];
[self.dbManager loadDataFromDB:addValue];
}
NSString *batchComit = @"COMMIT TRANSACTION";
[self.dbManager loadDataFromDB:batchComit];
更新: 我已经设法让上面的代码工作,但现在我在 iphone6 上获得了 90% 的 CPU 使用率!我实际上看到了这一点,因为我使用了一个 for 循环来循环查询是完全错误的。有没有办法将值批量插入特定列中的行?
【问题讨论】:
-
如果您仍然遇到问题,请分享您从
sqlite3_errmsg获得的确切错误消息(或者如果使用sqlite3_exec,您从该调用的第五个参数获得的信息)。