Ric*_*ich 172 sqlite compound-key unique-constraint
我可以在SQLite网站上找到关于此的语法"图表",但没有示例和我的代码崩溃.我在单个列上有其他具有唯一约束的表,但我想在两列上向表添加约束.这就是我所带来的SQLiteException,消息"语法错误".
CREATE TABLE name (column defs)
UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE
Run Code Online (Sandbox Code Playgroud)
我这样做是基于以下几点:
为了清楚起见,我提供的链接上的文档说明CONTSTRAINT name应该在我的约束定义之前.
可能导致解决方案的一点是,无论我的括号列定义如何,调试器都会抱怨.
如果我放
...last_column_name last_col_datatype) CONSTRAINT ...
Run Code Online (Sandbox Code Playgroud)
错误接近"CONSTRAINT":语法错误
如果我放
...last_column_name last_col_datatype) UNIQUE ...
Run Code Online (Sandbox Code Playgroud)
错误接近"UNIQUE":语法错误
Aym*_*ieh 336
将UNIQUE声明放在列定义部分中:
CREATE TABLE name (column defs, UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE);
Run Code Online (Sandbox Code Playgroud)
工作范例:
CREATE TABLE a (i INT, j INT, UNIQUE(i, j) ON CONFLICT REPLACE);
Run Code Online (Sandbox Code Playgroud)
好吧,您的语法与您包含的链接不匹配,它指定:
CREATE TABLE name (column defs)
CONSTRAINT constraint_name -- This is new
UNIQUE (col_name1, col_name2) ON CONFLICT REPLACE
Run Code Online (Sandbox Code Playgroud)
如果您已经有一个表并且由于某种原因不能/不想重新创建它,请使用索引:
CREATE UNIQUE INDEX my_index ON my_table(col_1, col_2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98666 次 |
| 最近记录: |