2013-05-27 56 views
4

关于SQLite的问题。SQLite - 表约束UNIQUE和列约束UNIQUE之间的任何区别?

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

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

柱约束: 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 
) 

它们是differen T'

回答

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