2011-11-09 26 views
2

我想在內存中保存一些臨時數據,應該在服務器關閉後將其刪除。HSQLDB重新啓動後清除表數據

HSQLDB中有一個臨時表,但事務提交後立即刪除數據,這對我來說太短了。另一方面,內存表保留一個腳本日誌文件並在服務器重新啓動時恢復數據。維護這樣的腳本日誌需要時間和地點,這對我的情況來說毫無用處。

我所需要的僅僅是一種表格,只有表格結構在硬盤中是持久的,數據和數據操作只應該在內存中執行。否則,爲什麼我需要一個內存數據庫而不是mysql?

HSQLDB中有這種類型的表嗎?

謝謝

回答

3

創建文件:數據庫,然後創建表。執行關機。編輯數據庫的.properties文件,添加下面的設置並保存。

files_readonly=true 

當您使用此數據庫執行測試時,沒有數據寫入磁盤。

或者,使用最新版本的HSQLDB 2.2.x,您可以在測試期間在連接URL上指定此屬性。例如

jdbc:hsqldb:file:myfilepath;files_readonly=true 
+0

謝謝,但我不能在那之後更改數據。我所需要的只是保持表模式持久,表內的數據可以在運行時更新,但不會存儲在硬盤中。 – cn1h

+0

您並未設置防止任何更改的'readonly = true'屬性。建議的屬性允許您添加和修改數據而不寫入磁盤。 – fredt

+0

謝謝,你是對的,readonly和files_readonly是完全不同的。我測試過,它的工作原理!我應該做的就是像以前一樣在普通模式下構建表結構,然後將files_readonly屬性更改爲true,就像快照一樣,當新服務器啓動時,所有狀態都會自動恢復。非常感謝你 – cn1h

相關問題