日期:2014-05-17  浏览次数:20717 次

Sql如何通过建立索引过滤重复?
本帖最后由 xuyirui2004 于 2013-01-19 11:58:12 编辑
准备导入一个1G的文档,但是里面有很多的重复内容,想通过建立索引来过滤重复值。

在索引选项勾选上,忽略重复的值提示。

不能使用索引选项 ignore_dup_key来更改索引 'pk_emaillist',因为它强制使用了主约束或唯一约束。


我目前使用sql2005,表结构
id email user 、 id是主键。想通过索引过滤掉email 和user 一样的行数据。

下面是官方说明,但是看不明白。如何定义中新增middlename资料行,是什么意思和怎么操作。


若索引鍵資料行中目前存在重複的值,即無法建立唯一索引或條件約束。
例如,如果您想要針對 FirstName 和 LastName 資料行建立唯一的複合索引,
但是資料表中有兩個資料列在 FirstName 和 LastName資料行中含有 'Jane'與 'Smith' 值,
您就無法建立唯一索引。您可以使用下列其中一個方法來解決此問題:

在索引定義中新增或移除資料行,以建立唯一複合索引。在前述範例中,
於索引定義中新增 MiddleName 資料行,應該就可以解決重複值的問題。

若重複值是因資料輸入錯誤所造成,請手動更正資料,然後再建立索引或約束條件


------解决方案--------------------
按我的理解好像是说在索引中再引入一个字段来保证没有重复