如果(a, b)
,则已知两个整数列b = 1
的组合是唯一的。唯一可以假设的其他值是0。
我想用UNIQUE约束来表达这个,类似于
CREATE TABLE t (
id INTEGER PRIMARY KEY,
a INTEGER NOT NULL,
b INTEGER NOT NULL,
CONSTRAINT u UNIQUE (a,b) WHERE b=0
)
但是,根据语法图表,SQLite似乎没有允许我指定WHERE部分的功能。还有其他方法可以使用吗?
b = 1
条件在数据中很少见,但在查询中非常常用,所以我肯定希望使用它来添加索引。
答案 0 :(得分:0)
我做了更多研究,但一无所获。
我能想到的最好方法是:
约束可以使用索引,至少应该阻止全表扫描(需要由EXPLAIN QUERY PLAN验证)。