批量插入数据还要排重某些字段怎么做

Lucare 发布于 2016/08/05 10:32
阅读 149
收藏 1

如图,我要批量导入excel表格中的数据,其中同一个组织的同一个手机号码不能重复插入,组织id我后台可以拿到,然后插入时要判断该组织的这个手机号是否已经存在(和公司无关,某个组织可以有不同公司)。

请问怎么操作sql语句效率高点。因为插入之前还要判断该组织的这个职位是否存在,不存在还要插入职位并返回职位id,然后才是插入成员。

加载中
0
Lucare
Lucare
大家一般怎么做的呢
0
sss6666
sss6666
加唯一索引
m
magiclogy
回复 @Lucare : 复合唯一索引
sss6666
sss6666
回复 @Lucare : 没听懂你这句话
Lucare
Lucare
这里是orgid和phone联合 业务上的要求的唯一性
0
Zemo
Zemo

正好用excel手动去重啊。 上网搜一下excel去重...

Lucare
Lucare
有些重复不是excel本身,而是数据库已存在
0
魔力猫
魔力猫
先洗完数据再导入数据库。
Lucare
Lucare
怎么操作
0
jackie_123
jackie_123
先把已经插入过的手机号+组织id key 放入缓存 插入的时候去缓存里面get 如果存在直接跳过
jackie_123
jackie_123
回复 @Lucare : 一样的 根据手机号+组织id作为key去缓存中查询 如果存在的话 说明 该组织下 该用户手机号已经存在 就不要插入数据库了啊 把重复的数据过滤之后 用mybatis 或是hbernate批量执行插入就行了
Lucare
Lucare
数据库中已存在怎么办,假如我一个excel导入两次,不同时间段
0
就是个精虫上脑的地方
就是个精虫上脑的地方
先把数据一股脑塞到临时表里去 然后就根据业务情况处理了
Lucare
Lucare
我试试吧
0
skhuhu
skhuhu
数据库加唯一索引  然后不验证 直接插入  try catch insert方法 报错就是说明重复了 然后continue
skhuhu
skhuhu
如果数据重要 请把报错的数据插入日志表
返回顶部
顶部