目录和模式表达式
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
大多数数据库都了解某种命名空间,用于将对象(如表、存储过程、序列等)分组到一个公共目录或模式中。jOOQ 使用类型 org.jooq.Catalog
和 org.jooq.Schema
来建模这些分组,遵循 SQL 标准命名。
目录
目录是模式的集合。在许多数据库中,目录对应于数据库或数据库实例。通常,目录是完全独立的,并且它们的表不能在单个查询中以任何方式连接或组合。此处的例外是 SQL Server 和 Sybase ASE,它们允许完全引用来自多个目录的表
SELECT * FROM [Catalog1].[Schema1].[Table1] AS [t1] JOIN [Catalog2].[Schema2].[Table2] AS [t2] ON [t1].[ID] = [t2].[ID]
某些方言,包括 MariaDB、MemSQL、MySQL,将目录(数据库)和模式视为同一件事。jOOQ 将这些方言中的数据库视为模式。
默认情况下,Settings.renderCatalog
标志处于开启状态。如果数据库支持查询多个目录,jOOQ 将生成完全限定的对象名称,包括目录名称。有关此设置的更多信息,请参见手册中关于设置的部分
jOOQ 的代码生成器为每个目录生成子包。
模式
模式是对象的集合,例如表。大多数数据库都支持某种模式(一些嵌入式数据库除外,如 Access、Firebird、SQLite)。在大多数数据库中,模式是一个独立的结构实体。在 Oracle 中,模式和用户/所有者在很大程度上被视为同一件事。一个使用完全限定表(包括模式名称)的查询示例是
SELECT * FROM "Schema1"."Table1" AS "t1" JOIN "Schema2"."Table2" AS "t2" ON "t1"."ID" = "t2"."ID"
默认情况下,Settings.renderSettings
标志处于开启状态。 因此,jOOQ 将生成完全限定的对象名称,包括设置名称。 有关此设置的更多信息,请参见手册中关于设置的部分
反馈
您对此页面有任何反馈吗? 我们很乐意听到您的意见!