Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite:如果不为空,则为唯一约束_Sqlite_Indexing_Constraints_Unique - Fatal编程技术网

Sqlite:如果不为空,则为唯一约束

Sqlite:如果不为空,则为唯一约束,sqlite,indexing,constraints,unique,Sqlite,Indexing,Constraints,Unique,我想在文本列上创建一个唯一的约束,该约束只会影响非空单元格。(每个单元格必须是唯一的,当且仅当它包含一些字符时) 我试过了,但出现了一个例外: db.execSQL("CREATE TABLE tables (" + "table_id INTEGER PRIMARY KEY, " + "table_name TEXT, " + "table_number INTEGER, " + "table_alias 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);"

知道如何实现这一点吗?

在唯一的列中,空值被认为是不同的。(不要问为什么,SQL就是这样工作的。)


因此,将emtry字符串替换为NULL。

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

因此,将emtry字符串替换为null