我想在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);"
我知道如何实现这一目标?
答案 0 :(得分:1)
在UNIQUE列中,NULL值被视为不同。 (不要问为什么,这就是SQL的工作原理。)
所以用NULL替换emtry字符串。