我' 我试图在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
我做错了什么?
答案 0 :(得分:0)
Derby不支持CREATE INDEX
的语法。
以下是CREATE INDEX
:http://db.apache.org/derby/docs/10.14/ref/rrefsqlj20937.html
Derby确实支持“生成的列”:http://db.apache.org/derby/docs/10.14/ref/rrefsqljgenerationclause.html
因此,您可以更改表定义以包含GENERATED AS (expression)
列,并使用所需的表达式来计算数据。
然后您可以在索引中包含该列。