小编典典

SQLite 表约束 - 在多个列上唯一

all

我可以在 SQLite
网站上找到语法“图表”,但没有示例,我的代码崩溃了。我有其他表在单列上具有唯一约束,但我想在两列上向表中添加约束。这就是我所拥有的导致
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 ...

错误 接近“唯一”:语法错误


阅读 76

收藏
2022-07-17

共1个答案

小编典典

将 UNIQUE 声明放在列定义部分;工作示例:

CREATE TABLE a (
    i INT,
    j INT,
    UNIQUE(i, j) ON CONFLICT REPLACE
);
2022-07-17