INSERT INTO users_words(iduser,idword,status_of_word) VALUES(4,6,2);
INSERT INTO users_words(iduser,idword,status_of_word) VALUES(4,6,1);
INSERT INTO users_words(iduser,idword,status_of_word) VALUES(4,6,0);
INSERT INTO users_words(iduser,idword,status_of_word) VALUES(5,6,0);
INSERT INTO users_words(iduser,idword,status_of_word) VALUES(8,7,1);
INSERT INTO users_words(iduser,idword,status_of_word) VALUES(8,9,2);
我想将一个唯一的索引与iduser,idword一起使用。 如何避免将具有相同值的查询插入索引列? 例如:Bloking行插入如13和14(idusers_words)行
SELECT * FROM users_words;
> idusers_words | iduser | idword | status_of_word |
12 4 6 2
13 4 6 1
14 4 6 0
15 5 6 0
16 8 7 1
17 8 9 2
编辑:
我试过这段代码。但是出现了错误“#1062 - 关键'my_unique'重复输入'1-1'”
ALTER TABLE users_words
ADD CONSTRAINT my_unique UNIQUE(iduser,idword);
答案 0 :(得分:2)
您的唯一索引应仅针对您的要求的 iduser 和 idword 列。
您在idusers_words,iduser and idword.
上有索引这意味着所有三列的组合应该是唯一的。
由于idusers_words是自动增量,因此即使idusers和idword是重复的,也会始终满足此条件,并且会插入记录。
答案 1 :(得分:1)
您可以对一组字段设置约束,如下所示:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)