我试图在 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 https://h2database.com/html/features.html#compatibility
在某些情况下您可能还需要CASE_INSENSITIVE_IDENTIFIERS=TRUE
.
这两个设置自 H2 1.4.198 起可用。在旧版本中,您可以使用DATABASE_TO_UPPER=FALSE
反而;但不要在较新的版本中使用此设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)