5

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
)

彼らは違うのですか?

4

1 に答える 1

7

この場合、違いはありません。

ただし、2 つの異なる列にまたがる一意の制約をテーブルに作成することはできます。このような:

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 に答える