如何查询H2数据库当前连接的兼容模式
H2数据库查询当前连接兼容模式的实现方案
H2本身不支持GET MODE这类直接查询兼容模式的语法,也没有提供名为mode()的内置函数,你可以通过以下两种可行方式获取当前连接的兼容模式配置:
- 精准查询模式配置
直接查询内置系统表INFORMATION_SCHEMA.SETTINGS,过滤出模式对应的配置项即可,执行语句:
执行SELECT SETTING_VALUE FROM INFORMATION_SCHEMA.SETTINGS WHERE SETTING_NAME = 'MODE';SET MODE DB2;后再运行该查询,会返回结果DB2;如果从未手动修改过兼容模式,默认返回值为REGULAR,也就是H2原生运行模式。 - 从全量会话配置中查找
针对H2 1.4.x及以上的新版本,可以执行不带任何参数的SET语句,它会返回当前连接所有会话级别的配置参数,你可以在返回结果里直接找到MODE对应的取值:
这个方法会一次性返回所有可调整的连接配置,适合需要同时核对多项会话参数的场景。SET;
补充说明:
select schema()能正常运行是因为schema()是H2官方内置的系统函数,兼容模式没有对应的同名函数,直接执行select mode()会抛出语法错误,不建议使用该写法。
内容的提问来源于stack exchange,提问作者René Link
相关产品推荐
相关产品推荐

