【问题标题】:H2 set schema changes schema_search_pathH2 设置架构更改 schema_search_path
【发布时间】:2021-04-11 19:56:00
【问题描述】:

如果我设置了 schema_search_path,并且我希望通过设置架构而不是解释 表中的模式创建(通用脚本可用于多个模式,这也将 schema_search_path 设置为仅指定的模式。

这似乎是一种不良副作用。

【问题讨论】:

    标签: h2


    【解决方案1】:

    SET SCHEMA_SEARCH_PATH 设置的值不受任何其他命令的影响。

    但该值仅在标识不符合架构且当前架构中不存在具有此名称的对象时使用(受SET SCHEMA 命令影响)。

    例如,由非限定名称引用的表按以下顺序搜索:

    1. 当前架构的表。
    2. 本地临时表。 (目前它们还包括来自 WITH 子句的查询别名,但是当有人为这些视图实现单独的标识符范围时,这可能会改变。)
    3. SCHEMA_SEARCH_PATH 中每个模式的表(如果有)。当指定多个模式时,它们的顺序是有意义的,它们按相同的顺序处理。
    4. 旧表或兼容性表,例如 DB2 和 Derby 兼容模式中的 DUALSYSDUMMY1

    将使用与其名称匹配的第一个表。

    这是一个复杂的情况,对于大多数类型的数据库对象,只执行步骤 (1) 和 (3)。

    如果您认为某些事情不像这里描述的那样进行,您可以创建一个独立的测试用例(仅限 Java/JDBC/SQL,没有第三方库),您可以在 GitHub 上创建一个错误报告: https://github.com/h2database/h2database/issues

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      相关资源
      最近更新 更多