null列上的android sqlite索引

时间:2013-11-25 18:05:40

标签: android sql sqlite android-sqlite

我有一个表,想创建3列唯一索引。问题是列之一可以具有空值。您可能知道sqlite以特殊方式处理这些值,如果我们有

row1: A, B, null
row2: A, B, null

它将被接受(即使我在A,B,C上创建了唯一索引)。

问题是,是否有任何技巧可以将null视为与所有其他值相同的值(例如null为零),并且在上面的情况下,第二行不会被接受为违反规则。

事先得到帮助。

2 个答案:

答案 0 :(得分:1)

您可以尝试创建具有默认值(例如,零)的列-3的表,不允许NULL,因此当它不包含在INSERT中时,它将采用默认值。这将保留唯一索引。

答案 1 :(得分:0)

太晚了,但必须为自己找到解决方案。

Unique Partial Indexes

CREATE UNIQUE INDEX my_index ON my_table(field_a,field_b,field_c)WHERE field_c IS NOT NULL;