【问题标题】:HSQLDB clear table data after restartHSQLDB重启后清除表数据
【发布时间】:2011-12-25 16:42:23
【问题描述】:

我想在内存中保存一些临时数据,这些数据应该在服务器关闭后删除。

HSQLDB中有一个临时表,但是事务提交后立即删除数据,这对我来说太短了。另一方面,内存表保存一个脚本日志文件,并在新服务器启动时恢复数据。维护这样的脚本日志需要时间和地点,这对我的情况来说毫无用处。

我需要的只是一种表,只有表结构在硬盘中持久化,数据和数据操作应该只在内存中进行。否则我为什么需要内存数据库而不是 mysql?

HSQLDB 中有这种类型的表吗?

谢谢

【问题讨论】:

    标签: hsqldb temporary in-memory-database


    【解决方案1】:

    创建文件:数据库,然后创建表。执行关机。编辑数据库的 .properties 文件,添加下面的设置并保存。

    files_readonly=true
    

    当您使用此数据库执行测试时,不会将数据写入磁盘。

    或者,使用最新版本的 HSQLDB 2.2.x,您可以在测试期间在连接 URL 上指定此属性。例如

    jdbc:hsqldb:file:myfilepath;files_readonly=true
    

    【讨论】:

    • 谢谢,但之后我无法更改数据。我需要的只是保持表模式持久化,表中的数据可以在运行时更新,但不会存储在硬盘中。
    • 您没有设置阻止任何更改的readonly=true 属性。建议的属性允许您在不写入磁盘的情况下添加和修改数据。
    • 谢谢,你是对的,readonly 和 files_readonly 是完全不同的。我测试了,它有效!我应该做的是像以前一样以普通模式构建表结构,然后将 files_readonly 属性更改为 true,这就像一个快照,当服务器新启动时,该点的所有状态都会自动恢复。非常感谢
    • 添加了使用该属性的替代方法。
    • 谢谢,我使用的是 jboss 6.1,它包含一个开箱即用的 hsqldb 1.8。无论如何,非常感谢您的建议,我认为 jboss7 可能包含一个新版本。
    猜你喜欢
    • 2013-09-27
    • 2015-06-13
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2021-05-08
    • 2021-08-24
    • 2021-09-24
    • 2014-02-18
    相关资源
    最近更新 更多