【发布时间】:2009-08-08 08:51:40
【问题描述】:
我试图在 iphone 的 sqlite 数据库中插入 1916 条记录,但插入 246 条记录后出现错误
“由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'插入数据时出错。'无法打开数据库文件''”
有没有关于插入缓存之类的设置?
【问题讨论】:
我试图在 iphone 的 sqlite 数据库中插入 1916 条记录,但插入 246 条记录后出现错误
“由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'插入数据时出错。'无法打开数据库文件''”
有没有关于插入缓存之类的设置?
【问题讨论】:
可能存在内存限制约束,您可能希望运行这是几个事务,例如一次插入 245 条记录,然后再插入 245 条,直到完成。
更多细节也会有所帮助,例如查询、sqlite 版本、每个字段中传递了多少数据、表结构、约束等......
【讨论】:
对于这么多的 INSERT,您需要将写入操作包装在事务中。我发现不这样做会导致设备上的内存使用量激增并导致整体性能下降。我在this answer 中提供了一些代码作为如何执行此操作的示例。
【讨论】: