在 Derby 中为 CASE 表达式创建索引
Create index on CASE expression in Derby
我'
m 尝试在 CASE 表达式上创建索引,如下所示:
CREATE UNIQUE INDEX symbol_unique_idx ON "USER" (CASE WHEN deleted = 0 THEN symbol ELSE NULL END);
出现错误:
Error: Syntax error: Encountered "CASE" at line 1, column 54.
SQLState: 42X01
ErrorCode: 30000
我做错了什么?
Derby 不支持 CREATE INDEX
.
的语法
这是 CREATE INDEX
的 Derby 文档:http://db.apache.org/derby/docs/10.14/ref/rrefsqlj20937.html
Derby 支持 "generated columns":http://db.apache.org/derby/docs/10.14/ref/rrefsqljgenerationclause.html
因此,也许您可以更改 table 定义以包含 GENERATED AS (expression)
列,并使用所需的表达式来计算您的数据。
然后您可以将该列包含在索引中。
我' m 尝试在 CASE 表达式上创建索引,如下所示:
CREATE UNIQUE INDEX symbol_unique_idx ON "USER" (CASE WHEN deleted = 0 THEN symbol ELSE NULL END);
出现错误:
Error: Syntax error: Encountered "CASE" at line 1, column 54.
SQLState: 42X01
ErrorCode: 30000
我做错了什么?
Derby 不支持 CREATE INDEX
.
这是 CREATE INDEX
的 Derby 文档:http://db.apache.org/derby/docs/10.14/ref/rrefsqlj20937.html
Derby 支持 "generated columns":http://db.apache.org/derby/docs/10.14/ref/rrefsqljgenerationclause.html
因此,也许您可以更改 table 定义以包含 GENERATED AS (expression)
列,并使用所需的表达式来计算您的数据。
然后您可以将该列包含在索引中。