Mysql兼容的内存数据库中的查询错误(h2)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql兼容的内存数据库中的查询错误(h2)相关的知识,希望对你有一定的参考价值。
我试图在我的spring启动应用程序上执行一些集成测试。已经确定内存数据库符合我们的需求。决定使用h2数据库。目前我们正在使用mysql 5.5版本。我从mysql转储创建查询。示例查询: -
CREATE TABLE `TEST` (
`id` varchar(20) NOT NULL,
`test` enum('','of') NOT NULL,
PRIMARY KEY (`id`)
);
我在pom.xml中使用以下依赖项: -
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.199</version>
<scope>test</scope>
</dependency>
如果我在h2上执行此查询,则会出现以下错误: -
Empty enums are not allowed; SQL statement:
我在mysql模式下使用h2连接为: -
jdbc:h2:file:~/test;MODE=MYSQL
对于同样的事情我能做些什么吗?如果我的数据源是mysql,那么还有其他好的mysql兼容的内存数据库。我听说过mariaDB4j:mariaDB4j。
答案
这可能是一个错误,针对空值的规则似乎打破了连接字符串中请求的mysql兼容模式。当然,对于H2本机模式,它可以有意义,但这不是这里的用例。
另一答案
错误非常明显,您不能在枚举列中使用空值。而是使用值来表示空虚
[...]
`test` enum('','of') NOT NULL,
[...]
使用
[...]
`test` enum('--','of') NOT NULL,
[...]
要么
[...]
`test` enum(' ','of') NOT NULL,
[...]
以上是关于Mysql兼容的内存数据库中的查询错误(h2)的主要内容,如果未能解决你的问题,请参考以下文章
播放框架2:内存数据库中的h2 mysql兼容模式:转义字符
Spring boot jpa H2兼容模式MYSQL不起作用