我正在开发一个使用Xerial SQLite驱动程序在大型数据库上执行某些查询的Java程序。
发送查询时
SELECT sequence,fieldOne,fieldTwo,pairs FROM events ORDER BY pairs DESC
其中sequence是TEXT,fieldOne,fieldTwo以及对和整数。这需要一些时间并抛出此异常:
[SQLITE_FULL]插入失败,因为数据库已满(数据库或磁盘已满)
如果我添加一个限制约束,它就可以了。
发生了什么事?这不是插入查询,磁盘未满。
答案 0 :(得分:6)
ORDER BY
, SQLite可能正在创建临时表/文件。磁盘未满,因为您在删除它创建的临时文件后进行检查。如果你无法获得更多的磁盘空间,我建议批量处理结果或删除ORDER BY
(如果可以的话)。