带有破折号/连字符的架构名称 i HyperSQL

Posted

技术标签:

【中文标题】带有破折号/连字符的架构名称 i HyperSQL【英文标题】:Schema name with dash/hyphen i HyperSQL 【发布时间】:2012-04-16 10:00:56 【问题描述】:

我正在为一个直接使用 mysql 作为数据存储的遗留应用程序编写单元测试。

我们决定的方法是将数据库访问抽象到它自己的层,然后依赖注入。我们还将使用 hsqldb 作为内存数据库(出于速度原因)为该层编写测试。

当前代码使用的模式名称中包含破折号,据我所知,hypersql 没有任何方法可以转义?

我是否需要将架构名称注入数据库层,或者有什么方法可以配置 hsqldb 以接受破折号?

【问题讨论】:

【参考方案1】:

假设您的数据库访问代码使用 SELECT * FROM schema-name.tablenameSCHEMA-NAME.tablename 之类的任何字符大小写变化,那么您应该将其与 HyperSQL 一起使用:

CREATE SCHEMA "SCHEMA-NAME" AUTHORIZATION DBA

and

SELECT * FROM "SCHEMA-NAME".tablename

如果您的所有数据都在同一个架构中,那么您只需将此架构设置为默认架构,并避免在 SQL 查询中使用“SCHEMA-NAME”。

【讨论】:

谢谢,我们需要做一些跨模式查询,所以这可能是一个很好的解决方案,我会在这里尝试一下。

以上是关于带有破折号/连字符的架构名称 i HyperSQL的主要内容,如果未能解决你的问题,请参考以下文章

如何通过带有连字符的 ID 获取 html 控件?

在 python 存储库名称和包名称中使用连字符/破折号

为啥我不能将带有破折号的字符串转换为 wstring?

当模块名称中包含“-”破折号或连字符时如何导入模块?

带有特殊字符破折号 (-) 和下划线 (_) 的 Javascript 自定义排序

IOS应用名称