2017-04-04 63 views
0

我想創建一個唯一的約束,只會影響非空單元格的TEXT列。 (當且僅當它包含某些字符時,每個單元格必須是唯一的)。Sqlite:如果不是空的唯一約束

我想這一點,但它引起的異常:

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

在UNIQUE列中,NULL值被認爲是不同的。 (不要問爲什麼,這只是SQL的工作原理。)

因此,用空值替換emtry字符串。

+0

現在工作正常,Thx! – Denis