h2数据库中的脚本文件

Posted

技术标签:

【中文标题】h2数据库中的脚本文件【英文标题】:Script file in h2 database 【发布时间】:2012-08-09 02:50:15 【问题描述】:

我正在尝试通过在 applicationcontext.xml 中设置以下内容来将 h2 数据库嵌入到我的 spring 应用程序中

<jdbc:embedded-database id="embeddedDataSource" type="H2">

<jdbc:script location="classpath:data.sql"/>

</jdbc:embedded-database>

当我执行它时,它在data.sql文件中显示语法错误。但是这个文件是来自工作mysql数据库的备份文件。h2是否支持mysql备份脚本文件。谁能给我一个h2的例子脚本文件。

它显示的错误是

Syntax error in sql statement "create database[*] ""test"" ";expected "OR,FORCE,VIEW,ALIAS,SEQUENCE,USER,TRIGGER,ROLE,SCHEMA,CONSTANT"; sql statement:

我的data.sql 包含

create database 'test';

【问题讨论】:

【参考方案1】:

H2 并非 100% 兼容 MySQL,就像其他数据库(如 Oracle、MS SQL Server、PostgreSQL 等)不是 100% 兼容 MySQL。只有 MySQL 与 MySQL 100% 兼容。如果要运行为 MySQL 编写的 SQL 语句,则需要确保它们不包含任何 H2 不支持的语法。

显示语法错误

可以发一下吗?

谁能给我一个h2脚本文件的例子。

支持的语法是documented on the H2 web site。

【讨论】:

在 h2 中创建名为 test 的新数据库的语法是什么。是否与创建数据库 'test' 相同; 如果你阅读H2文档,你会发现没有create database语句,如果数据库不存在会自动创建。

以上是关于h2数据库中的脚本文件的主要内容,如果未能解决你的问题,请参考以下文章

创建数据库时的 H2 文件嵌入模式运行脚本(未初始化连接)

在 h2 数据库 sql 脚本中不起作用

未加载 Spring Boot 测试 H2 sql 脚本

Grails 3.3 执行H2脚本命令

内存 H2 数据库,插入脚本不持久

H2 DB Initial Set Up 脚本在 JUNIT 中被多次调用