SQLite - Любая разница между табличным ограничением UNIQUE & column-constraint UNIQUE?

Вопрос о SQLite.

В CREATE TABLE SQL мы можем добавлять ограничения UNIQUE в любом случае: ограничение столбца или ограничение таблицы. Мой вопрос прост. Они работают по-другому?

Единственное различие, которое я смог найти, заключалось в том, что в ограничении таблицы может быть несколько 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
)

Разные?

1 ответ

В этом случае нет никакой разницы.

Однако вы можете создать уникальное ограничение для таблицы, которое будет охватывать два разных столбца. Вот так:

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

Проконсультируйтесь с этой почтой для получения дополнительной информации: Ограничение таблицы SQLite - уникально для нескольких столбцов

licensed under cc by-sa 3.0 with attribution.