5

关于 SQLite 的问题。

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

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

列约束: 在此处输入图像描述

表约束: 在此处输入图像描述

这是一个例子:

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
)

它们不同吗?

4

1 回答 1

7

在这种情况下没有区别。

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

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

有关详细信息,请参阅此帖子: SQLite 表约束 - 在多个列上唯一

于 2013-05-27T09:18:58.423 回答