我正在为直接使用mysql作为数据存储的遗留应用程序编写单元测试。
我们已经确定的方法是抽象出对它自己的层的数据库访问,并且依赖注入它。我们还将使用hsqldb作为内存数据库为该层编写测试(出于速度原因)。
当前代码使用的是一个名称中包含短划线的模式,据我所知,hypersql没有任何办法可以逃脱它?
我是否需要将模式名称注入数据库层,或者是否有某种方法可以将hsqldb配置为接受破折号?
答案 0 :(得分:1)
假设您的数据库访问代码使用SELECT * FROM schema-name.tablename
或SCHEMA-NAME.tablename
之类的任何字符大小写变体,那么您应该将它与HyperSQL一起使用:
CREATE SCHEMA "SCHEMA-NAME" AUTHORIZATION DBA
and
SELECT * FROM "SCHEMA-NAME".tablename
如果您的所有数据都在同一模式中,那么您只需将此模式设置为默认模式,并避免在SQL查询中使用“SCHEMA-NAME”。