网站建设规划与管理 试卷,企业服务中心官网,深圳市seo网站设计,团智慧团建登录入口项目场景#xff1a;
十万条甚至更多的数据新增或者修改 问题描述
现在有十万条数据甚至更多数据#xff0c;在这些数据中#xff0c;有部分数据存在数据库中#xff0c;有部分数据确是新数据#xff0c;存在的数据需要更新#xff0c;不存在的数据需要新增 原因分析
十万条甚至更多的数据新增或者修改 问题描述
现在有十万条数据甚至更多数据在这些数据中有部分数据存在数据库中有部分数据确是新数据存在的数据需要更新不存在的数据需要新增 原因分析
几十万的数据有新增有修改我们肯定不能去每条都要去数据库查询验证是否存在这样数据库也扛不住 解决方案 提示有两种解决方案简单记录下在mybatis中使用的场景 1、第一种解决方式使用on duplicate key update主键重复去修改不重复就新增这里的order_id就是主键
insert idaddOrUpdateKryOrderMst parameterTypelistinsert into ${schema}.me_kry_order_mst(order_id,trade_no,trade_type,trade_status,order_time,check_out_time,source,source_name,received_amount,cust_real_pay,trade_amount,privilege_amount)valuesforeach collectionkryOrderMstParam itemitem separator,(#{item.orderId}, #{item.tradeNo}, #{item.tradeType}, #{item.tradeStatus}, #{item.orderTime}, #{item.checkOutTime}, #{item.source}, #{item.sourceName}, #{item.receivedAmount}, #{item.custRealPay}, #{item.tradeAmount}, #{item.privilegeAmount})/foreachon duplicate key updatetrade_no values (trade_no), trade_type values (trade_type), trade_status values (trade_status), order_time values (order_time), check_out_time values (check_out_time), source values (source), source_name values (source_name), received_amount values (received_amount), cust_real_pay values (cust_real_pay), trade_amount values (trade_amount), privilege_amount values (trade_amount)/insert2、第二种解决方式使用replace into若是主键存在就删除重新新增一条 insert idaddOrUpdateKryOrderMst parameterTypelistreplace into ${schema}.me_kry_order_mst(order_id,trade_no,trade_type,trade_status,order_time,check_out_time,source,source_name,received_amount,cust_real_pay,trade_amount,privilege_amount)valuesforeach collectionkryOrderMstParam itemitem separator,(#{item.orderId}, #{item.tradeNo}, #{item.tradeType}, #{item.tradeStatus}, #{item.orderTime}, #{item.checkOutTime}, #{item.source}, #{item.sourceName}, #{item.receivedAmount}, #{item.custRealPay}, #{item.tradeAmount}, #{item.privilegeAmount})/foreach/insert写的不好请各位看官多多担待勿喷谢谢有需要补充请留言