You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

H2数据库如何在SQL脚本内部加载引用其他SQL脚本

H2数据库SQL文件嵌套引入说明

H2原生支持在单个SQL文件内部引入执行其他SQL脚本,你之前尝试的\source、@、\include属于其他数据库客户端的专有命令,H2的SQL解析器无法识别,因此不会生效。

现有文件结构

  • create-tables.sql
  • insert-data.sql
    • data-1.sql
    • data-2.sql
    • data-3.sql

正确实现方式

你当前JDBC连接串中INIT参数使用的runscript from 'xxx'就是H2执行外部脚本的原生语法,该语法同样可以直接写在普通SQL文件内部。
直接在insert-data.sql文件中写入以下语句即可引入三个子脚本:

-- 按实际路径填写,路径规则和你INIT参数中的路径规则一致,相对于程序运行工作目录
RUNSCRIPT FROM 'src/test/resources/sql/data-1.sql';
RUNSCRIPT FROM 'src/test/resources/sql/data-2.sql';
RUNSCRIPT FROM 'src/test/resources/sql/data-3.sql';

如果你的SQL脚本随项目打包在classpath路径下,推荐使用classpath前缀写法,不受程序启动路径影响:

RUNSCRIPT FROM 'classpath:/sql/data-1.sql';
RUNSCRIPT FROM 'classpath:/sql/data-2.sql';
RUNSCRIPT FROM 'classpath:/sql/data-3.sql';

注意事项

  • RUNSCRIPT是标准SQL语句,末尾必须加英文分号
  • 如果脚本包含非ASCII字符(比如中文注释、中文数据),可以追加字符集参数避免乱码:RUNSCRIPT FROM 'xxx.sql' CHARSET 'UTF-8';
  • 你现有的JDBC连接配置不需要修改,替换insert-data.sql中的无效引入命令即可正常执行

内容的提问来源于stack exchange,提问作者Pamba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:24:34