SQLite - 表约束UNIQUE和列约束UNIQUE之间的任何区别?

Nae*_*mul 4 database sqlite android-sqlite

关于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
)
Run Code Online (Sandbox Code Playgroud)

CREATE TABLE Example (
    _id INTEGER PRIMARY KEY,
    name TEXT,
    score INTEGER,
    UNIQUE (name) ON CONFLICT REPLACE
)
Run Code Online (Sandbox Code Playgroud)

他们不一样吗?

Dar*_*usz 6

在这种情况下,没有区别.

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

CREATE TABLE Example (
    _id INTEGER PRIMARY KEY,
    name TEXT,
    index INTEGER,
    score INTEGER,
    UNIQUE (name, index) ON CONFLICT REPLACE
)
Run Code Online (Sandbox Code Playgroud)

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