如何避免没有主键和唯一键的重复条目?
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
从临时表中复制剩余记录进入真实的。
【讨论】:
以上是关于如何避免没有主键和唯一键的重复条目?的主要内容,如果未能解决你的问题,请参考以下文章
数据库中,主键是不能重复,唯一的,请问外键是否也不能重复的??
数据库中,主键是不能重复,唯一的,请问外键是否也不能重复的??