前端之家收集整理的这篇文章主要介绍了
SQLite数量限制?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图将大量的记录(百万)插入到
sqlite
数据库中.数据从
文件流(C)读入.如果我开始一个单独的事务,执行所有插入,然后提交事务,我只得到实际插入到我的
数据库中的很小百分比的记录.
插入的那些似乎是随机的 – 我看不到任何图案被插入,哪些被遗漏了.但是,如果我提交然后再次启动事务,像2000插入之后,我没有这个问题,所有的记录都被插入,即使进程要慢得多.所以…
在一个交易中可以做多少插入是否有严格的限制?有没有办法改变这个限制?
我可以在一个事务中插入一千万行而没有问题.
我的猜测:
>您在单个语句中插入太多的行,并触发表达式树的最大深度限制.这可以完全关闭.
>您正在使用超长的INSERT,而不需要绑定值并且触发sql语句限制的最大长度.在这种情况下,请使用参数绑定.
>它可能是库中的一个错误(您是否检查每个API返回的错误代码?)
检查Limits In SQLite.如果您在代码中显示如何准备和执行INSERT,可能会有所帮助.