2011-11-09 27 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

相关问题