4

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

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)
4

1 回答 1

6

是的,但是您必须为每列执行一个 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 是多余的)。

于 2013-04-25T15:21:56.343 回答