我想分配一个主键,但有些数据是重复的?我们如何保留数据但仍然有主键?主键与重复数据?
Q
主键与重复数据?
0
A
回答
1
主键是一系列唯一值。所以你可以保留你的重复数据,或者你可以有一个主键,但不能同时存在。
或者,您可以使用代理键,方法是在表中添加ID列并从序列中填充它。当然,在这种情况下,“初级密钥”是没有意义的,因为你没有执行商业密钥的唯一性。但至少你可以欺骗自己,你有真正的完整性。
1
从我可以猜到,你有数据,你试图分配一个列作为主键,但数据具有重复值的列。
主键必须是唯一的。这就是数据库101.如果唯一可以作为主键的东西是重复的,那么您就不能正确地构建表格。
1
您可以手动创建在列的非唯一索引被约束,再加入与novalidate
子句的主键约束,如:
create table t1 (x number);
insert into t1 (x) values (1);
insert into t1 (x) values (1);
commit;
create index t1_pk on t1 (x);
alter table t1 add (
constraint t1_pk primary key (x) novalidate
);
我必须然而,压力,虽然有可能,这通常是不好的设计!
2
我在17年的数据库工作中遇到这个问题的唯一原因是数据错误。一个客户已经输入了两次,使用相同的ID进入一个没有主键的表格。
当需要声明主键时,必须首先清除数据错误,以便能够将最逻辑的列用作主键。
因此,我的建议是查看表中的所有数据是否符合业务规则,以及检查业务规则是否暗示将此列用作主键。
0
主键是唯一的,所以如果你想在某个列中有重复的数据,同一列不能是该表的主要键。
相关问题
- 1. 合并具有重复主键和外键的数据库
- 2. 当主键没有主键时,mysql主键重复输入
- 3. 忽略主键重复
- 4. Postgresql重复的主键
- 5. ObjectContext.SaveChanges和重复的主键
- 6. 接收 “主键重复enty”
- 7. Yii复合主键与isNewRecord
- 8. 重复插入主键,外键
- 9. Yii Framework 2.0主键的重复键值
- 10. 主键+外键与重复输入错误
- 11. 处理数据仓库加载中的主键重复
- 12. MySQL:使用AI主键和重复键更新加载数据文件
- 13. 与“关于重复键
- 14. 更新与重复键
- 15. 主键与键
- 16. 使用重复键创建json数据
- 17. 插入数据的重复键
- 18. 数据库主键
- 19. 数据库主键
- 20. 删除没有主键的重复项
- 21. 在主键mysql上的重复条目
- 22. 了重复的主键错误
- 23. Pentaho错误:非主键重复条目
- 24. 重复条目在MySQL的关键 “主”
- 25. SQL忽略重复的主键
- 26. PHP/SQL - 乘主键(上重复更新)
- 27. SQL重复使用不同的主键
- 28. Seam/Hibernate/JPA - 重复主键异常?
- 29. org.hibernate.exception.ConstraintViolationException:重复的条目键“主要”
- 30. SQL服务器:重复主键错误
修复您的数据。不止一次存储相同信息的重点是什么? – sqlvogel 2013-04-22 14:52:04
根据定义,主键列中的数据必须是唯一的 – 2016-04-21 20:23:21