SQLite - 表约束UNIQUE&列约束UNIQUE?

时间:2013-05-27 09:01:13

标签: database sqlite android-sqlite

关于SQLite的问题。

在CREATE TABLE SQL中,我们可以以任何一种方式添加UNIQUE约束:column-constraint或table-constraint。我的问题很简单。他们的工作方式不同吗?

我能找到的唯一区别是,在表格约束中,单个约束中可能有多个indexed-column

列的约束: enter image description here

表约束: enter image description here

以下是一个例子:

CREATE TABLE Example (
    _id INTEGER PRIMARY KEY,
    name TEXT UNIQUE ON CONFLICT REPLACE,
    score INTEGER
)

CREATE TABLE Example (
    _id INTEGER PRIMARY KEY,
    name TEXT,
    score INTEGER,
    UNIQUE (name) ON CONFLICT REPLACE
)

它们有什么不同吗?

1 个答案:

答案 0 :(得分:6)

在这种情况下没有区别。

但是,您可以在表上创建一个唯一约束,该约束将跨越两个不同的列。像这样:

CREATE TABLE Example (
    _id INTEGER PRIMARY KEY,
    name TEXT,
    index INTEGER,
    score INTEGER,
    UNIQUE (name, index) ON CONFLICT REPLACE
)

有关详细信息,请参阅此帖子: SQLite table constraint - unique on multiple columns