+-
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。

0
投票

这可能是一个错误,针对空值的规则似乎打破了连接字符串中请求的mysql兼容模式。当然,对于H2本机模式,它可以有意义,但这不是这里的用例。

-1
投票

错误非常明显,您不能在枚举列中使用空值。而是使用值来表示空虚

[...]
`test` enum('','of') NOT NULL,
[...]

使用

[...]
`test` enum('--','of') NOT NULL,
[...]

要么

[...]
`test` enum(' ','of') NOT NULL,
[...]