转储 H2 插入语句

Posted

技术标签:

【中文标题】转储 H2 插入语句【英文标题】:Dump H2 insert statements 【发布时间】:2012-11-18 10:32:20 【问题描述】:

您好,我怎样才能仅为 H2 In Memory DB 的实例转储数据。

我目前拥有的

    PreparedStatement preparedStatement = connection
            .prepareStatement("SCRIPT SIMPLE NOSETTINGS");
    ResultSet resultSet = preparedStatement.executeQuery();
    response.setContentType("text/plain");
    ServletOutputStream out = response.getOutputStream();
    while (resultSet.next()) 
        String columnValue = resultSet.getString(1);
        out.print(columnValue);
        out.println();

这会转储整个数据库结构,但不仅仅是插入数据。基本上我想要做的是备份我在开发模式下插入的数据,以便下次启动数据库时我可以将数据重新写入脚本。

表结构不是问题,因为它是由 JPA 完成的。

【问题讨论】:

【参考方案1】:

要过滤掉插入,您可以使用:

if (columnValue.startsWith("INSERT")) 
    out.println(columnValue);

【讨论】:

您是之前在评论中发表此内容的人吗?我没有机会回复该评论,现在也没有看到。 是的,我首先将其添加为评论。 对我不起作用。我的导出不包含任何 INSERT 语句。 这很容易!但是我已经检查过了,不,我的表中填充了数据。 :-/ @PeterWippermann 在这种情况下,我需要一个简单、可重现的测试用例。因为我无法复制它。

以上是关于转储 H2 插入语句的主要内容,如果未能解决你的问题,请参考以下文章

H2:如何插入/更新 varbinary 列

在 h2 数据库中插入视图

从 SQL 脚本在 H2 数据库中插入长文本

如何通过 DataGrip 每 100 行创建一个 sql 插入语句

如何解析sql语句插入以使用pyspark获取值

h2创建数据库语句