关于mysql存储过程(表数据同步批量新增,批量修改)

来源:互联网 发布:udp源端口号 编辑:程序博客网 时间:2024/06/05 18:09

1. 表数据同步(把表A的数据添加到表B) 

create Procedure()

BEGIN
#把表A表中的数据全部初始化至 表B 中
INSERT INTO 表B(user_name,trademark,regist_time,last_call_time,operator,number_area,isPay,pay_type,userlevel)
SELECT ca.aniid,ca.agentname,ca.creatime,(select endtime FROM ccbill_cdr cc where cc.callrecid = ca.aniid),
(select CASE WHEN left(cardtype,4) = 'XXXX' THEN 1 
 WHEN left(cardtype,4) = 'XXXX' THEN 2 
 WHEN left(cardtype,4) = 'XXXX' THEN 3 END 
FROM edw_sys_phone_area WHERE num = left(ca.aniid,7)),(select province from edw_sys_phone_area WHERE num = left(ca.aniid,7)) as number_areaA,
(CASE WHEN ca.userlevel >= 1 THEN 1 ELSE 0 END) as isPayA,ca.type,ca.userlevel from 表A;


#记录日志
INSERT INTO operationtsTmp.Operating_log(table_name,content,Operating_date) VALUES ('ccbill_ani ---> edw_data_user',':第一步:把ccbill_ani表中的数据全部初始化至 edw_data_user 中',NOW());

END


2. 表批量修改某些字段

UPDATE edw_data_balance edb2 INNER JOIN operationtsTmp.`edw_data_balance_tmp-1` edbt 
ON edb2.user_name = edbt.user_name 
and edb2.trademark = edbt.trademark
and edb2.balance_date = edbt.maxDate
set edb2.balance = edbt.balance;

  

0 0