Sqlite:如果不是空的唯一约束

时间:2017-04-04 12:32:17

标签: sqlite indexing constraints unique

我想在TEXT列上创建一个唯一的约束,它只会影响非空单元格。 (当且仅当它包含一些字符时,每个单元格必须是唯一的。)

我试过这个,但它引发了一个例外:

db.execSQL("CREATE TABLE tables (" +
        "table_id INTEGER PRIMARY KEY, " +
        "table_name TEXT, " +
        "table_number INTEGER, " +
        "table_alias TEXT, " +
        "UNIQUE(table_alias) WHERE table_alias != '' ON CONFLICT IGNORE);"

我知道如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

在UNIQUE列中,NULL值被视为不同。 (不要问为什么,这就是SQL的工作原理。)

所以用NULL替换emtry字符串。