首页 新闻 会员 周边

还是关于批量插入的问题

0
[已解决问题] 解决于 2008-01-27 16:37
假设: <BR>表A以身份证号作为主键.批量插入数据到表A <BR><BR>用什么方法忽略主键重复的记录继续插入而完成此次操作。类似于Access中的导入。然后对主键重复的记录另行处理。 <BR><BR>这里就不讨论插入方法了,sql语句拼接也好,单条执行也好。 <BR><BR>但是要避免的是对每一条记录到表A里select一次看是否存在。这样效率太低了。 <BR><BR>问题是,还有什么更好的办法吗? <BR><BR>考虑过不使用身份证号作为主键的问题。假设生成自动增量ID字段作为主键。 <BR><BR>批量插入后再删除重复记录中ID号高的那一条。问题是,这样的方法总感觉有点不得已而为之。 <BR><BR>有请各位兄弟姐妹帮忙~
cloudgamer的主页 cloudgamer | 菜鸟二级 | 园豆:280
提问于:2008-01-27 00:40
< >
分享
最佳答案
0
如果目标表上有主键,那么无论如何这个主键都必须保证无重复,所以你的想法是没有办法实现的 如果重复的记录只需要记录一条,其他的允许直接丢失,可以采用单条插入,把插入放到try里,遇到重复记录会报错,无视之,继续插入 如果要对重复记录进行特殊处理,怕是没有办法了,只能取消这个字段的主键,或者在源数据库里进行处理,然后再进行导入 只一次导入的话,“不得已而为之”并没有什么不好,数据迁移本来就是一件麻烦的事,如果是经常性的导入导出,建议还是取消了这个主键,或者对源数据库进行一下处理以从源头上杜绝这种问题的发生
丁学 | 专家六级 |园豆:18730 | 2008-01-27 07:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册