一组值的SQL唯一值

时间:2016-02-03 05:07:18

标签: mysql sql unique

我在表格中有2列'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

2 个答案:

答案 0 :(得分:1)

处理您的情况的一种安全方法是在iddate列的组合上添加唯一约束:

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

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

答案 1 :(得分:0)

我对这个问题的理解是你不希望两行具有相同的值。您可以使用唯一关键字,但这会限制列只包含每个值中的一个。所以它不允许id 1和2都具有相同的日期。

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

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