创建h2备份,不需要更改语句

问题描述 投票:0回答:1

H2的具体声明 Script我正在用它来创建没有任何数据的sql文件。

script NODATA to 'db.sql'

但我找不到一个选项来说明我不想要改变语句。我想在创建sql文件时不使用 "create table, create sequence, alter table... "这样的语句,而只使用插入语句。

我想这样做是因为我想在现有的数据库中加载数据,而这个数据库中已经有一些数据,但使用创建语句的sql脚本却失败了。

java h2 database-backups
1个回答
1
投票

H2有 BACKUP TO 'filename.zip' 命令进行在线备份。SCRIPT 也可以用于这个目的(如果你需要将你的数据转移到另一个版本的H2中,应该使用),但它不是一个备份命令,它是一个数据导出命令。

如果你想把SQL脚本导出到现有的非空数据库中,你有两个选择。

  1. 执行 DROP ALL OBJECTS 使目标数据库中的数据为空,然后再执行 RUNSCRIPT FROM. 这种方式是可靠的。
  2. 使用 SCRIPT DROP … 当你创建这个脚本时。它将产生额外的 DROP 命令。您也可以使用 SCHEMA schemaNameTABLE tableName 子句,如果你只想导出一些表。但是,你可能会遇到一些其他问题,比如序列或其他东西。

如果你需要将现有的数据与脚本中的数据合并,你不能用这种方式。你需要在另一个数据库中导入数据,并从中创建链接表(或在另一个模式下的现有数据库中),然后运行以下命令。MERGE INTO tableName USING scriptTableName ON … 命令,为每个表正确编写匹配规则和动作,例如:。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.