【问题标题】:How to delete a H2 database file programmatically?如何以编程方式删除 H2 数据库文件?
【发布时间】:2017-01-11 19:40:05
【问题描述】:

我正在使用 JDBC 和 H2 数据库开发应用程序,偶尔需要删除数据库文件。有没有办法做到这一点?

【问题讨论】:

  • 顺便说一下,如果你需要一个没有持久性的临时数据库,H2 支持“内存中”模式,数据库只存在于内存中,永远不会被写入存储,并在你的应用程序退出时消失。

标签: java jdbc h2


【解决方案1】:
Statement s = connection.createStatement();
s.execute("drop all objects delete files");

【讨论】:

    【解决方案2】:

    是的,你可以!

    参考这个答案找到H2存储数据库的文件夹(通常是用户的主目录): Where does H2's Embedded Databases Store the data?

    要删除它,可以使用 org.h2.tools.DeleteDbFiles 类,如下所示:

    DeleteDbFiles.execute(dbDir, dbName, true);
    

    关于 DeleteDbFiles 类的更多信息:http://www.h2database.com/javadoc/org/h2/tools/DeleteDbFiles.html

    【讨论】:

    • 这个不行,尝试创建表然后调用这个方法,再次尝试创建同名表,仍然会报错,因为表已经存在
    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2011-11-03
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多