MySql与HSQLDB的兼容性

时间:2018-07-04 17:59:39

标签: mysql hsqldb badsqlgrammarexception

我正在使用HSQLDB来测试使用MySQL的Java应用程序的数据库集成。我遇到一个MySQL查询语法与HSQLDB查询语法不兼容的问题。我要测试的类具有一个使用反引号(`)和REGEXP的MySQL查询。在HSQLDB中使用时,这会导致错误的SQL语法异常。这是MySQL查询的示例:

jdbcTemplate.queryForObject("SELECT MAX(`id`) FROM `schema.table` WHERE `id` REGEXP ?;", new Object[] {"^", "abc"}, String.class);

如果像下面的查询中那样删除反向刻度并将REGEXP更改为REGEXP_MATCHES,则看不到任何错误:

jdbcTemplate.queryForObject("SELECT MAX(id) FROM schema.table WHERE REGEXP_MATCHES(id, ?);", new Object[] {"^", "abc.*"}, String.class);

但是我无权访问实际的课程,所以我将无法更改它。

基于HSQLDB documentation,我还尝试设置sql.syntax_mys = true以启用对MySQL语法的支持-但这仍会导致相同的异常。无论如何,可以使HsQLDB接受MySQL语法吗?

0 个答案:

没有答案