读取 CSV 文件后从 Bak 文件创建 H2 Db

Create H2 Db from BatFile after reading CVS File

一切正常只是试图消除一个步骤 我有 2 个蝙蝠文件

1)读取 csv 并创建 table 并另存为压缩文件

如果表 1 存在则删除 TABLE; 创建 TABLE 表 2 (col1VARCHAR(10) NOT NULL,col2VARCHAR(10) NULL) AS SELECT * FROM CSVREAD('Table1.csv');

'MyDB.sql' 压缩放气的脚本;

2)从第一个 batfile 中获取压缩文件并创建 DB 文件

java.exe -Xmx512m -classpath h2.jar" org.h2.tools.RunScript -url jdbc:h2:file:C:\Temp\MyDB;MV_STORE =FALSE;MVCC=FALSE -user sa -password sa -script MyDB.sql -options compression deflate

有没有办法在不创建压缩文件的情况下创建数据库文件?

谢谢

您可以将初始化命令写入小 SQL 脚本并使用 RunScript:

执行此脚本

init.sql:

CREATE TABLE Table1 (
    col1 VARCHAR(10) NOT NULL,
    col2 VARCHAR(10))
    AS SELECT * FROM CSVREAD('Table1.csv');

java … RunScript … -script init.sql


您还可以在连接初始化期间使用 INIT 参数 运行 一些命令:

DriverManeger.getConnection(
    "jdbc:h2:your_database;your_parameters;INIT=RUNSCRIPT FROM 'init.sql'",
            user, password);

甚至

DriverManeger.getConnection(
    "jdbc:h2:your_database;your_parameters;INIT=CREATE TABLE Table1 AS …\; CREATE TABLE …'",
            user, password);

您可以使用 BACKUP 命令导出现有数据库:

BACKUP TO 'filename.zip'

生成的存档只包含随时可用的数据库文件。