我正在尝试在sqlite3中创建一个表来存储用户字段选择,并使user_id,table和name_id的每个组合都是唯一的。但运行以下操作会让我“错误:近”表“:语法错误”
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))
在唯一约束中组合text和integer列是否存在问题?
答案 0 :(得分: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))