澳门新葡萄京官网首页 1

澳门新葡萄京官网首页重复记录-删除

  • 重复记录-查找
  • 重复记录-删除
  • 重复记录-避免
  • 重复记录-题外
  • 重复记录-查找
  • 重复记录-删除
  • 重复记录-避免
  • 重复记录-题外
  • 重复记录-查找
  • 重复记录-删除
  • 重复记录-避免
  • 重复记录-题外



既然我们不需要重复记录,就应该从一开始就避免其存在,可以在插入和更新之前判断是否存在,但更好的是利用
UNIQUE。

删除重复记录的方法有很多,下面分析另一种。

仍然依照前一节的例子与思路,删除重复记录的语句如下:

在企业管理器中,打开表设计,右键,索引/键,如图。

步骤一、建立一个和源表字段结构相同的目的表,方法是:在企业管理器中,在表上点右键,复制,打开查询分析器,粘贴,更改表名,并将字符串中与表名相同的字符串替换成新的表名字符串。

delete from foo where id in (select L.id from foo L inner join foo R on
L.id>R.id and L.sName=R.sName and L.sClass=R.sClass)

这样,如果数据库中存在同样的目标记录,则插入或更新时就会失败。

步骤二、对目的表需要保持唯一的一个或多个字段建立索引或联合索引,确保索引不重复,且选中“忽略重复键”。

与查找重复记录的语句相比, L.id<>R.id 变成了
L.id>R.id,这是由于我们需要保留重复记录中的第一条记录。

澳门新葡萄京官网首页 1

步骤三、将源表内容复制到目的表,可利用导入导出工具,也可利用 insert
into select from。

同样 L.sName=R.sName and L.sClass=R.sClass 表示定义为重复的条件。

  • 重复记录-查找
  • 重复记录-删除
  • 重复记录-避免
  • 重复记录-题外

步骤四、清空源表,可用 delete 或 truncate
table,再将目的表内容复制到源表,可用导入导出工具,也可利用 insert
into select from。

运行上述代码后,剩余记录如下:
id sName    sClass
1 张三       1
2 李四       1
3 李四       2
4 王五       2


分析:

  • 重复记录-查找
  • 重复记录-删除
  • 重复记录-避免
  • 重复记录-题外

一、多次写入表,在记录大的情况下,我还没有测试过是否有较高的效率。


二、哪种情况下算作记录重复,是我们自定义的,如果我们的条件是很多个字段联合起来不能重复,那么索引势必很大,是否具有高效也值得考虑。

三、可能会丢失标识(常说的
ID),记录的复制,可能会对标识重新排序,大多数情况下,我们不希望标识有所改动。要做到这点,简单的方法是利用导入导出工具,并选中“启用标识插入”。

 

  • 重复记录-查找
  • 重复记录-删除
  • 重复记录-避免
  • 重复记录-题外

发表评论

电子邮件地址不会被公开。 必填项已用*标注