针对这种情况,可以先将这份Excel数据全部导入到一张临时表中,然后表与表之间进行验证,对已经存在的记录进行标记,然后将标记数据删除,剩下的就是需要导入数据库表的数据,再导入就可以了。
这种做就不存在你所说的问题了。
用的是sqlserver吗?我觉得要看
你在验证是否重复的时候的字段数量和长度占所有字段长度的比例?
假如说你几乎所有的字段都需要验证,那你可以在使用存储过程,在存储过程里面验证后并插入。如果说你只是验证一个主键,那不需要验证,因为sql会帮你验证。如果是相比全部字段很少的几个字段的验证,我觉得可以用代码验证,因为这样可以减少所有数据传输过去的时间。
估计重复行占所有行的比例?
如果重复行估计很少,那么存储过程验证,如果很多,用代码验证。
可以考虑先将excel表导入到一张临时表中,然后将此临时表与目的数据表求差,得到不重复的数据,再将这部分数据插入到目的数据表。最后删除临时表。这样只需要一次连接、一次检索。
可以根据你要导入的数据进行检索,一旦检索到数据库中的相同数据,此条数据就是重复数据,如此进行下去就行了!
设置主键