为了账号安全,请及时绑定邮箱和手机立即绑定

h2 SCRIPT 命令的错误“CREATE SEQUENCE”行

h2 SCRIPT 命令的错误“CREATE SEQUENCE”行

噜噜哒 2023-06-28 15:41:30
在我的 java 应用程序中,我使用 SCRIPT 命令备份某些表。当我尝试将此生成的备份脚本恢复到现有数据库时,出现错误Sequence "SYSTEM_SEQUENCE_6DBC2231_8C34_46B3_9CB9_2BC9E42CECA2" already exists似乎“SCRIPT”命令正在为数据库中的每个系统序列生成“CREATE SEQUENCE”行。不仅针对选择备份的表的序列,而且针对所有表的所有序列。因此,在恢复时,备份脚本尝试为未受影响的表创建序列,但失败了。当然。这是 SCRIPT 命令中的错误还是我遗漏了什么?
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

SCRIPT不是备份命令,而是数据/元数据导出命令。不过,您可以将其用于备份目的。但是您需要一个新的空数据库来将此类脚本加载到其中。

它按设计从所有模式或仅从指定模式导出所有序列。

  1. 您可以使用命令DROP的子句SCRIPT。通过此子句,附加DROP TABLE命令将包含在此类脚本中。DROP TABLE命令还会删除自动创建的生成列序列。

  2. DROP ALL OBJECTS您可以在该命令之前执行该命令RUNSCRIPT

  3. 您可以关闭所有连接,删除数据库,创建一个新数据库并RUNSCRIPT在其中执行。


查看完整回答
反对 回复 2023-06-28
?
呼如林

TA贡献1798条经验 获得超3个赞

我不认为这是SCRIPT命令错误,正如它所说......

从数据库创建 SQL 脚本。

因此,当您第一次创建序列时,请确保如果存在如下所示的序列,则不会创建序列。

CREATE SEQUENCE IF NOT EXISTS

然后SCRIPT命令应该在备份脚本时复制相同的内容。


查看完整回答
反对 回复 2023-06-28
  • 2 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信