Mysql 一组值的SQL唯一值

Mysql 一组值的SQL唯一值,mysql,sql,unique,Mysql,Sql,Unique,我在一个表中有两列'id'和'date',我想避免为同一个id插入重复的日期,我的意思是 id | date ------------------ 1 | 01/01/2015 2 | 01/01/2015 3 | 02/01/2015 1 | 01/01/2015 <--- this value is already insert for id 1, and should not be allowed for id 1 id |日期 ------------------

我在一个表中有两列'id'和'date',我想避免为同一个id插入重复的日期,我的意思是

id  |  date 
------------------
1  | 01/01/2015 
2  | 01/01/2015
3  | 02/01/2015
1  | 01/01/2015 <--- this value is already insert for id 1, and should not be allowed for id 1
id |日期
------------------
1  | 01/01/2015 
2  | 01/01/2015
3  | 02/01/2015

1 | 01/01/2015处理您的情况的安全方法是在
id
date
列的组合上添加一个独特的约束:

ALTER TABLE `table` ADD UNIQUE `ui`(`id`, `date`);

添加此约束后,尝试插入重复记录将生成错误。请注意,如果使用此选项,还将删除表中已存在的重复项。

我对问题的理解是,您不希望两行具有相同的值。您可以使用unique关键字,但这会将列限制为每个值只有一个。因此,它将不允许id 1和id 2具有相同的日期

如果确实不想复制行,则需要检查该行是否已在表中。如果不存在,则添加该行


另一个选项是添加重复的行,然后在搜索数据库时使用“select distinct”。

插入之前,请检查是否已经存在该行?或者对id和日期使用
unique
约束
id
不是主键吗?是的,答案是为id和日期添加唯一约束!!!谢谢