有 H2的具体声明 Script
我正在用它来创建没有任何数据的sql文件。
script NODATA to 'db.sql'
但我找不到一个选项来说明我不想要改变语句。我想在创建sql文件时不使用 "create table, create sequence, alter table... "这样的语句,而只使用插入语句。
我想这样做是因为我想在现有的数据库中加载数据,而这个数据库中已经有一些数据,但使用创建语句的sql脚本却失败了。
H2有 BACKUP TO 'filename.zip'
命令进行在线备份。SCRIPT
也可以用于这个目的(如果你需要将你的数据转移到另一个版本的H2中,应该使用),但它不是一个备份命令,它是一个数据导出命令。
如果你想把SQL脚本导出到现有的非空数据库中,你有两个选择。
DROP ALL OBJECTS
使目标数据库中的数据为空,然后再执行 RUNSCRIPT FROM
. 这种方式是可靠的。SCRIPT DROP …
当你创建这个脚本时。它将产生额外的 DROP
命令。您也可以使用 SCHEMA schemaName
或 TABLE tableName
子句,如果你只想导出一些表。但是,你可能会遇到一些其他问题,比如序列或其他东西。如果你需要将现有的数据与脚本中的数据合并,你不能用这种方式。你需要在另一个数据库中导入数据,并从中创建链接表(或在另一个模式下的现有数据库中),然后运行以下命令。MERGE INTO tableName USING scriptTableName ON …
命令,为每个表正确编写匹配规则和动作,例如:。