【Mysql】数据批量处理:
🏆 前言
因迭代版本升级,Mysql数据存储发生改变,需要批量处理旧版本数据。
⭐️ 步骤
🎯备份原始表
-- 备份表
create table data_mall_mydata_info_temp like data_mall_mydata_info;
insert into data_mall_mydata_info_temp select * from data_mall_mydata_info;
🎯创建更新数据SQL脚本
事先把要更新的内容,单独存储在
temp_sql_string
表中;方便组装SQL脚本
Select CONCAT( 'update ', ' data_mall_mydata_info set ',
'city_name=''',city_name,''', product_id=''',product_id,
''', data_type = ''',data_type,''' where id=',id,' and order_id=''',order_id,''';' ) as SQL1,
CONCAT( 'update ', ' data_mall_order_log_info set ',
'product_id=''',product_id,''' ,mydata_id=',id,
' where order_id=''',order_id,''';' ) AS SQL2
FROM temp_sql_string;
拼接SQL,字符串类型单引号转义处理使用如下语法
select '''北京';
🎯批量执行SQL脚本
将上一步生成的SQL脚本,执行
update data_mall_mydata_info set city_name='淄博', product_id='7ec584f3-3c74-1097-0088-44351779155c', data_type = '土地市场' where id=855833 and order_id='ZZ_BJ2021121122490933660035';
update data_mall_order_log_info set product_id='7ec584f3-3c74-1097-0088-44351779155c' ,mydata_id=855833 where order_id='ZZ_BJ2021121122490933660035';
...
🎯比对数据
对比备份表和正式表数据量