4

これはSQLiteで可能ですか?

お気に入り:

UNIQUE(col1, col2 = "something", col3),

ユニークとは:

#1  col1=Foo | col2=Foo       | col3=Foo   > OK
#2  col1=Foo | col2=Foo       | col3=Foo   > OK
#3  col1=Foo | col2=something | col3=Foo   > OK
#4  col1=Foo | col2=something | col3=Foo   > Should fail because of #3
#5  col1=Foo | col2=something | col3=Bar   > OK
#6  col1=Foo | col2=something | col3=Bar   > Should fail because of #5
4

3 に答える 3

2

私はそれをテストしていませんが、SQLite 3.8.0 (2013-08-26 リリース)の部分インデックスでそれを行うことができると思います:

CREATE UNIQUE INDEX
    "partial_index" ON "table" ("col1", "col2", "col3")
WHERE ("col2" = 'something');

私は間違っているかもしれませんが。

于 2013-09-02T00:53:02.773 に答える