2017-11-25 11 views
0

sqlite3でユーザーフィールドの選択を格納し、user_id、table、およびname_idの各組み合わせを一意にするテーブルを作成しようとしています。表:しかし、次のことを実行していることは私「近いERROR 『を取得』:構文エラー」sqlite3が複数の条件で一意である

CREATE TABLE preftest (
'id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 
'user_id' INTEGER NOT NULL, 
'table' TEXT NOT NULL, 
'name_id' INTEGER NOT NULL, 
CONSTRAINT userpref UNIQUE(user_id, table, name_id)) 

はユニーク制約でテキストと整数の列を組み合わせることであり、いくつかの問題ですか?

答えて

2

tableは、SQLite keywordです。

あなたは制約で'table'代わりのtableを使用する必要があります。

CREATE TABLE preftest (
'id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 
'user_id' INTEGER NOT NULL, 
'table' TEXT NOT NULL, 
'name_id' INTEGER NOT NULL, 
CONSTRAINT userpref UNIQUE(user_id, 'table', name_id)) 
+0

あなたが名前を引用していないため、適切に、それは、 '「テーブル」'ではなく ' 'table''だろうリテラル。 [SQLiteもサポートしています](https://www.sqlite.org/lang_keywords.html) '[table]'と '\' table \ 'は標準SQLではありません。 –

関連する問題