【发布时间】:2011-07-04 20:41:53
【问题描述】:
我正在将一些 SQL 查询从 Oracle 迁移到 DB2 UDB 8。
这是 SQL 查询:
create unique index ACT_UNIQ_RU_BUS_KEY on ACT_RU_EXECUTION
(case when BUSINESS_KEY_ is null then null else PROC_DEF_ID_ end,
case when BUSINESS_KEY_ is null then null else BUSINESS_KEY_ end);
有人知道在 DB2 UDB 8.x 中什么是等效的 SQL 吗?
仅供参考:这是我为 Activiti BPM 工具创建的 SQL 查询。
【问题讨论】:
-
我想每个 SQL 语句都是一种查询,但是许多人保留“查询”用于从数据库中检索数据的东西,使用 DML(数据修改语言)来更改数据库中数据的语句数据库,以及用于定义数据存储方式的语句的 DDL(数据定义语言)。
-
您的索引只是利用了这样一个事实,即如果索引中的所有列都为 NULL,则索引中不会存储任何条目。 (正如 Leffler 所说,第二种 case 表达式是多余的。)您可能想知道 DB2 是否支持基于函数(或基于表达式)的索引;如果没有,您可能只需要使用 (PROC_DEF_ID_, BUSINESS_KEY_) 上的索引。