SQL 一组值的唯一值

SQL unique values for a group of values

我在 table 中有 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

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

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

添加此约束后,尝试插入重复记录将产生错误。请注意,如果您使用此选项,它还会删除 table.

中已经存在的重复项

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

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

另一种选择是添加重复行,然后在搜索数据库时使用 "select distinct"。