关于SQLite的问题。
在CREATE TABLE SQL中,我们可以以任何一种方式添加UNIQUE约束:column-constraint或table-constraint。我的问题很简单。他们的工作方式不同吗?
我能找到的唯一区别是,在表格约束中,单个约束中可能有多个indexed-column
。
列的约束:
表约束:
以下是一个例子:
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
)
它们有什么不同吗?
答案 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