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