我试图在 SQL 模式下使用 h2 数据库。我能够创建一个全部大写的模式,并在其下创建一些表。但是,除非我匹配所有大写的架构名称,否则我在休眠上运行的应用程序似乎无法工作。我认为 h2 可以在 JDBC 连接字符串中使用 IGNROECASE=TRUE 进行配置。我错过了什么吗?
IGNORECASE设置与数据库对象的名称无关,它CHARACTER VARYING以奇怪的方式将列的排序规则更改为不区分大小写。
根据 SQL 标准的要求,默认设置的 H2 和许多其他 DBMS 中不带引号的标识符将转换为大写。
如果您使用 MySQL 或 PostgreSQL 兼容模式,通常需要指定DATABASE_TO_LOWER=TRUE,因为这些 DBMS 会将不带引号的标识符转换为小写。您可以在那里找到有关这些兼容性模式的更多详细信息:
https ://h2database.com/html/features.html#compatibility
在某些情况下您可能还需要CASE_INSENSITIVE_IDENTIFIERS=TRUE。
这两个设置自 H2 1.4.198 起可用。在旧版本中,您可以使用DATABASE_TO_UPPER=FALSE;但不要在较新的版本中使用此设置。
| 归档时间: |
|
| 查看次数: |
4956 次 |
| 最近记录: |