2013-05-28 41 views
1

我正在使用Xerial SQLite驅動程序對大型數據庫執行一些查詢的Java程序。「SQLITE完全」異常

當我發送查詢

SELECT sequence,fieldOne,fieldTwo,pairs FROM events ORDER BY pairs DESC 

,其中序列是一個文本,fieldOne,fieldTwo和對和整數。這需要一些時間,並拋出這個異常:

[SQLITE_FULL]插入失敗,因爲數據庫已滿(數據庫或磁盤已滿)

如果我加限制的約束,它會確定。

發生了什麼事?這不是插入查詢並且磁盤未滿。

回答

5

SQLite由於ORDER BY可能正在創建臨時表/文件。磁盤未滿,因爲您在刪除它創建的臨時文件後進行檢查。如果你不能給自己更多的磁盤空間,我會建議批量分配結果或者刪除ORDER BY(如果可以的話)。

+1

你說得對。我完全忘記檢查/ tmp所在分區的可用空間。 –

+0

我遇到這個異常只是使用getWritableDatabase打開數據庫,任何建議如何發生,謝謝。 – twlkyao