【问题标题】:H2 Database Backup Restore Sequence Already Exists ExceptionH2 数据库备份恢复序列已经存在异常
【发布时间】:2020-08-12 16:28:04
【问题描述】:

我有一个使用嵌入式 H2 数据库的应用程序。我想实现备份和恢复功能。我可以成功备份我的数据,但是当我尝试恢复它时遇到了障碍。这就是我备份它的方式:

  String DBQ = "SCRIPT TO ?";
            PreparedStatement myStatement = connection.prepareStatement(DBQ);
            myStatement.setString(1, backupFile.getAbsolutePath());
            myStatement.executeQuery();

我的备份文件生成的数据很好。但是,我似乎无法恢复它。这就是我尝试恢复它的方式:

    String DBQ = "RUNSCRIPT FROM ?";
                PreparedStatement preparedStatement = connection.prepareStatement(DBQ);
                preparedStatement.setString(1,unencryptedFile.getAbsolutePath());
                preparedStatement.executeUpdate();

我收到了org.h2.jdbc.JdbcSQLSyntaxErrorException: Sequence already exists。我环顾四周,几乎唯一能找到的东西是 2013 年的,没有答案 Backup and Restore h2,我确信我的数据库没有损坏。我似乎也找不到任何文档来帮助我解决这个问题。我该如何解决这个问题?

【问题讨论】:

  • 你应该使用BACKUP TO 'backup.zip'进行备份,而不是SCRIPT TO
  • @smithnblack 并恢复?我看到我的备份文件现在是存档而不是 SQL 文件

标签: java sql h2


【解决方案1】:

这是一个如何备份+恢复的完整示例: https://gist.github.com/cwdesautels/11188409

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多