批量生成SQL语句(处理大量数据)

7 篇文章 0 订阅
6 篇文章 0 订阅

在做项目时,经常会遇到这样的需求:用户给我们发过来一些数据,要求我们把这些数据导入到数据库中,对于少量的数据来说,用最原始的方法就可以解决,直接在SQL里面用语句来实现,但是如果是成千上万条数据,那么就考虑简洁方法实现。

1、将Excel的数据整理好,通过SQL的导入功能直接导入到数据库中,但是要保证数据库的字段和Excel的字段一致。
2、通过Excel生成相应的SQL语句,复制相关的SQL语句执行。例:

格式:="INSERT INTO 表名 (字段1,字段2,字段3, , ) VALUES('"&A1&"','"&B1&"','"&C1&"');"

="INSERT INTO lb_contract_info (CONTRACT_NO,CUSTOMER_NAME,START_DAY,OVER_DAY) VALUES('"&A1&"','"&B1&"','"&C1&"','"&D1&"');"

MySQL使用查询拼接实现批量处理语句:

SELECT CONCAT('insert into `lc_rent_income` (',
  '`ID`,',
  '`PROJECT_ID`,',
  '`PROJECT_PLAN_NUMBER`,',
  '`CONTRACT_ID`,',
  ')', 
'values',
  '(',
    'replace(uuid(),\'-\',\'\'),',
    '\'',PLAN.PROJECT_ID,'\',',
   '\'', PLAN.PROJECT_PLAN_NUMBER,'\',',
    '\'',PLAN.CONTRACT_ID,'\',',
  ') ;') 
FROM LC_CONTRACT_RENT_PLAN PLAN 
LEFT JOIN LB_CONTRACT_INFO ci 
 ON CI.ID = PLAN.CONTRACT_ID
WHERE ci.contract_number IN ('FB0010') 
AND DATE_FORMAT(PLAN.PLAN_DATE,'%Y/%m/%d') <= DATE_FORMAT('2019/04/03','%Y/%m/%d');

Oracle使用查询拼接实现批量处理语句:

SELECT 'upadte lb_contract_info set project_id=''' || lpi.id || ''' where 1=1; ' FROM lb_project_info lpi;

其它处理语句:

 

 

你的鼓励将是我创作的最大动力

转载请注明出处:BestEternity亲笔。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值