我的应用程序使用MySQL
数据库,并且具有表utils.'{UserUtils}'
。我需要编写一个使用相同查询的测试,但使用H2
数据库进行测试。但是我无法在H2
中创建这样的表,但出现错误:
Syntax error in SQL statement
"create table utils.`{UserUtils}`[*]" [42000-196]
是否可以通过某种方式告诉H2
创建这样的表,或者名称是否受到严格限制?
答案 0 :(得分:3)
在MySQL中,您需要使用反引号(`)将标识符括在特殊字符中。但是,在H2中,使用带有特殊字符的标识符的正确方法是将它们括在双引号(“)中。我刚刚在H2 v1.4中尝试了一下,没有任何麻烦:
create table "{UserUtils}" (
id int
);
insert into "{UserUtils}" (id) values (123);
insert into "{UserUtils}" (id) values (456);
select * from "{UserUtils}";
返回:
ID
-------------
123
456
也许您使用的是H2的旧/新版本。