我正在开发一个 Java 程序,该程序使用 Xerial SQLite 驱动程序在一个巨大的数据库上执行一些查询。
当我发送查询时
SELECT sequence,fieldOne,fieldTwo,pairs FROM events ORDER BY pairs DESC
其中 sequence 是文本、fieldOne、fieldTwo 以及对和整数。它需要一些时间并抛出这个异常:
[SQLITE_FULL] Insertion failed because database is full (database or disk is full)
如果我添加限制约束,一切正常。
发生了什么事?这不是插入查询,磁盘未满。
最佳答案
SQLite由于 ORDER BY
,可能正在创建一个临时表/文件。磁盘未满,因为您在删除它创建的临时文件后进行检查。如果您无法获得更多磁盘空间,我建议您要么对结果进行批处理,要么去掉 ORDER BY
(如果可以的话)。
关于java - "SQLITE Full"异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16801504/