H2数据库备份还原序列已存在异常
H2 Database Backup Restore Sequence Already Exists Exception
我有一个使用嵌入式 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,而且我确信我的数据库没有损坏。我似乎也找不到任何文档来帮助我解决这个问题。我该如何解决这个问题?
这是一个完整的备份+恢复示例:
https://gist.github.com/cwdesautels/11188409
我有一个使用嵌入式 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,而且我确信我的数据库没有损坏。我似乎也找不到任何文档来帮助我解决这个问题。我该如何解决这个问题?
这是一个完整的备份+恢复示例: https://gist.github.com/cwdesautels/11188409