【发布时间】:2019-10-13 22:49:13
【问题描述】:
我通常需要使用内存中的数据库来模拟生产数据库。生产是 mysql 并且我正在尝试使用 hsqldb 来模拟它,使用 Spring Boot 来处理替换。所有这些都很好,包括找到我的 flyway 脚本并运行它们。我遇到的问题是在 flyway 脚本的运行期间出现的。过去有人决定将其中一个 mysql 表称为“_show”,而 mysql 似乎对此很满意。 Hsqldb 不高兴。我发现了一些声称可以解决这个问题的设置的引用,但它们似乎没有任何区别。这是我的脚本的样子:
SET DATABASE SQL NAMES FALSE
SET DATABASE SQL REGULAR NAMES FALSE
CREATE TABLE _show (
id bigint(20) NOT NULL,
...
有了这个,我得到:
org.hsqldb.HsqlException: unexpected token: _SHOW
当 flyway 尝试执行脚本时。我尝试在表名周围加上双引号,但这次出现了关于左括号的不同错误,我尝试使用反斜杠来引用下划线。没运气。我想我一定是在以某种方式滥用 SET DATABASE... 标志,但我找不到任何使用它们的示例,只有文档表明我这样做是正确的。
我正在使用 org.hsqldb:hsqldb:2.5.0
感谢您的帮助
【问题讨论】:
-
你试过了吗**CREATE TABLE "_SHOW" **
-
@nbk 是的,没有帮助。
标签: mysql spring-boot hsqldb