SQLite 3可防止所有值都重复的行

时间:2014-06-18 15:51:44

标签: c++ sqlite insert duplicates

我想知道如何创建一个不允许插入COMPLETE重复项的行的表。完成后我的意思是每个值都必须相同。

我可以插入除1列值以外的相同行,但如果它们全部相同则不行。

我知道你可以使用INSERT或IGNORE来避免插入重复的行,但问题是我的表使用自动递增的整数作为其主键,而INSERT或IGNORE仍然允许插入重复的行,因为它看到了自动增加id为不同的

实施例

运行

INSERT OR IGNORE INTO table VALUES ("A", "B" "C");

两次会给我下表:

id | Column A | Column B | Column C
1.    "A"         "B"        "C"
2.    "A"         "B"        "C"

除了手动搜索重复项的行(忽略id)之外,还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

INSERT或IGNORE将检查任何约束,因此只需在要检查的字段上添加一个:

CREATE TABLE MyTable(
    ColumnA INTEGER PRIMARY KEY,
    ColumnB WHATEVER,
    ColumnC,
    UNIQUE (ColumnA, ColumnB, ColumnC)
);