我想知道如何创建一个不允许插入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)之外,还有其他方法吗?
答案 0 :(得分:1)
INSERT或IGNORE将检查任何约束,因此只需在要检查的字段上添加一个:
CREATE TABLE MyTable(
ColumnA INTEGER PRIMARY KEY,
ColumnB WHATEVER,
ColumnC,
UNIQUE (ColumnA, ColumnB, ColumnC)
);