【问题标题】:Oracle Conditional Index with two identifiers具有两个标识符的 Oracle 条件索引
【发布时间】:2023-04-04 05:30:01
【问题描述】:

是否可以在两列上创建条件索引?

CREATE UNIQUE INDEX idx_dup_wfc
    ON WF_WORKFLOW_CLASS (CASE WHEN is_active = 1
      THEN (NAME, DEPT_OWNER)
         ELSE NULL
      END)

返回 ORA-00906: missing left parenthesis 但是以下工作

CREATE UNIQUE INDEX idx_dup_wfc
    ON WF_WORKFLOW_CLASS (CASE WHEN is_active = 1
      THEN NAME
         ELSE NULL
      END)

【问题讨论】:

    标签: oracle indexing


    【解决方案1】:

    是的,但您必须为每列执行一个 CASE:

    CREATE UNIQUE INDEX idx_dup_wfc
        ON WF_WORKFLOW_CLASS 
         (CASE WHEN is_active = 1 THEN NAME END
         ,CASE WHEN is_active = 1 THEN DEPT_OWNER END
         )
    

    (代码中的 ELSE 是多余的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 2014-09-20
      • 2015-02-15
      相关资源
      最近更新 更多