【发布时间】: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 文件