2011-04-03 26 views
0

插入一些數據並運行一些查詢後,我決定從表中刪除數據。然而,當我跑都hsqldb表被清除並重新連接後不爲空

TRUNCATE TABLE MYTABLE

DELETE FROM我下次連接到數據庫MYTABLE

,它不是空的,並且查詢返回結果。 即使在刪除了數據庫的文件夾後,它仍然繼續。 需要注意的是,在truncatre或delete之後立即運行的表上的查詢不會返回任何結果,因爲它應該是。

回答

1

我會懷疑數據庫的默認行爲是自動關閉的,並且您正在隱式事務中操作。當您斷開連接時,您剛纔執行的所有操作都不會寫入數據庫(已發生ROLLBACK)。您需要在關閉連接之前發出COMMIT。這將最終確定數據庫中的更改。

1

你對連接做了明確的close()嗎?

HSQLDB具有日誌操作的文本格式,並在重新啓動執行該文件後重新創建數據庫狀態。如果不讓DB完全關閉,尾隨命令可能不會寫入文件,並且在重新連接時不會再次執行。

您可以在斷開連接後查看數據庫腳本文件(* .script),看看是否記錄了您的命令。

+0

在我完成了兩個(COMMIT和關閉連接)之後,問題終於被解除了。非常感謝! – Srv19 2011-04-03 15:58:10

相關問題