如何避免没有主键和唯一键的重复条目?

Posted

技术标签:

【中文标题】如何避免没有主键和唯一键的重复条目?【英文标题】:How to avoid duplicate entries without primary key and unique key? 【发布时间】:2014-09-26 05:14:31 【问题描述】:

我想知道是否可以在没有任何键或 group by 语句的情况下避免重复条目或数据

【问题讨论】:

你能提供一些例子吗? 只是不插入重复条目? 我通过将 4 个表合并为 2 个表重新设计了一个表,现在的问题是已经用于防止重复的主键被缩短,因此在从数据库中获取数据时,总功能正在成为条目的灾难重复我正在使用内部连接来获取数据 因此问题是有没有其他方法可以防止重复??? 【参考方案1】:

创建唯一键约束。

ALTER TABLE Comment ADD CONSTRAINT uc_Comment UNIQUE (CommentId, Comment)

在上述情况下,不会复制评论,因为我们正在创建 COMmentId 和评论的唯一组合。

希望这会有所帮助。

更多信息:http://www.w3schools.com/sql/sql_unique.asp 或

SQL Server 2005 How Create a Unique Constraint?

【讨论】:

【参考方案2】:

如果您想在查询时抑制重复,请使用SELECT DISTINCT

如果您想避免将重复项放入表中,请不要插入已经存在的记录。是否有主键/唯一键无关紧要:这些会使数据库不允许重复记录,但您仍然可以避免尝试插入重复记录(假设您希望查询成功)。

您可以在尝试插入之前使用SELECT 查找记录是否已存在。或者,如果您想花哨,可以将新记录插入临时表中,使用DELETE删除任何已经存在于真实表中的记录,然后使用INSERT ... SELECT从临时表中复制剩余记录进入真实的。

【讨论】:

以上是关于如何避免没有主键和唯一键的重复条目?的主要内容,如果未能解决你的问题,请参考以下文章

数据库中,主键是不能重复,唯一的,请问外键是否也不能重复的??

数据库中,主键是不能重复,唯一的,请问外键是否也不能重复的??

主键和外键的区别:

如何分清SQL数据库中的主键与外键

主键约束,外键约束,空值约束,默认值约束,唯一约束,检查约束的各个作用是啥?

主键和外键的作用