您可以在 H2 中创建多个目录吗?
Posted
技术标签:
【中文标题】您可以在 H2 中创建多个目录吗?【英文标题】:Can you create multiple catalogs in H2? 【发布时间】:2014-08-01 21:32:25 【问题描述】:当您像这样连接到嵌入式本地 H2 数据库时:
jdbc:h2:./target/data/CATALOGA;
H2 使用数据库名称(此处为 CATALOGA)作为 CATALOG_NAME。这可以通过查询 INFORMATION_SCHEMA.CATALOGS 表来查看。
是否可以有多个目录?
您不能插入 INFORMATION_SCHEMA 并且 H2 不允许 CREATE CATALOG
语句。
背景信息是我们有跨目录连接的查询。所以看起来像:
select * from CATALOGA.dbo.example e
inner join CATALOGB.dbo.example2 e2 on e.fk = e2.fk
查询中直接包含目录/模式,我需要能够在 H2 上执行它们。
【问题讨论】:
【参考方案1】:对于 H2,目录就是数据库。在 H2 中,您可以在一个数据库中创建多个模式,但不能创建多个目录。
当然你可以创建多个数据库,但我想这不是你想要的,因为数据库是独立的。您可以使用"create linked table" 功能链接另一个数据库中的表,但链接的表仍处于相同的架构中。
【讨论】:
我注意到链接表功能,但文档说只有简单的选择是可能的。我认为它在我的场景中不起作用,因为我需要正确地加入它们? 我想知道,您在文档的什么地方读到只有简单的选择是可能的?这听起来像一个文档错误。确实,连接可能不如您在真实数据库中执行时那么有效,但连接是可能的(以及更新、删除、插入)。 我想我可能误解了这句话。 Linked Tables 部分说Only simple statements are executed against the target database, that means no joins.
我认为这意味着您不能加入链接表。
我明白了。我将更新文档并添加“包含连接的查询转换为简单查询”
是的,只是抱有希望。我认为对于我们中的一些人来说,我们将 h2 用于支持多个目录的生产和 qa 数据库的测试开发数据库。即使它不是真正的目录,以某种方式复制它也会非常方便。以上是关于您可以在 H2 中创建多个目录吗?的主要内容,如果未能解决你的问题,请参考以下文章
我可以通过 IOS 中的 phonegap/cordova 在 www 目录中创建一个文件夹吗?
您可以在单个存储库中为每个目录添加额外的 .gitignore 吗?