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
处理您的情况的一种安全方法是对 id
和 date
列的组合添加唯一约束:
ALTER TABLE `table` ADD UNIQUE `ui`(`id`, `date`);
添加此约束后,尝试插入重复记录将产生错误。请注意,如果您使用此选项,它还会删除 table.
中已经存在的重复项
我对这个问题的理解是您不希望两行具有相同的值。您可以使用 unique 关键字,但这会将列限制为每个值只有一个。因此它不允许 id 1 和 2 具有相同的日期。
如果您确实不想重复行,则需要检查该行是否已在 table 中。如果不存在,则添加该行。
另一种选择是添加重复行,然后在搜索数据库时使用 "select distinct"。
我在 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
处理您的情况的一种安全方法是对 id
和 date
列的组合添加唯一约束:
ALTER TABLE `table` ADD UNIQUE `ui`(`id`, `date`);
添加此约束后,尝试插入重复记录将产生错误。请注意,如果您使用此选项,它还会删除 table.
中已经存在的重复项我对这个问题的理解是您不希望两行具有相同的值。您可以使用 unique 关键字,但这会将列限制为每个值只有一个。因此它不允许 id 1 和 2 具有相同的日期。
如果您确实不想重复行,则需要检查该行是否已在 table 中。如果不存在,则添加该行。
另一种选择是添加重复行,然后在搜索数据库时使用 "select distinct"。