SQLite テーブル制約 - 複数の列で一意 質問する

SQLite テーブル制約 - 複数の列で一意 質問する

SQLite Web サイトでこれに関する構文の「チャート」は見つかりますが、例がなく、コードがクラッシュします。 1 つの列に一意の制約がある他のテーブルがありますが、2 つの列に制約を追加したいと考えています。 これが、SQLiteException が発生し、「構文エラー」というメッセージが表示される原因です。

CREATE TABLE name (column defs) 
UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE

私は以下に基づいてこれを行っています:

テーブル制約

明確にするために、私が提供したリンクのドキュメントには、CONTSTRAINT name制約定義の前に来る必要があると書かれています。

ただし、解決につながる可能性があるのは、括弧で囲まれた列定義の後に続くものはすべて、デバッガーがエラーを報告している内容であるということです。

もし私が

...last_column_name last_col_datatype) CONSTRAINT ...

エラーは「CONSTRAINT」付近: 構文エラー

もし私が

...last_column_name last_col_datatype) UNIQUE ...

エラーは「UNIQUE」付近: 構文エラー

ベストアンサー1

UNIQUE 宣言を列定義セクション内に配置します。動作例:

CREATE TABLE a (
    i INT,
    j INT,
    UNIQUE(i, j) ON CONFLICT REPLACE
);

おすすめ記事