记一次excel的数据更新到数据库表的操作
- 背景:
因为是生产环境,运营害怕更新了其他数据,所以只能根据他提供的excel数据进行更新,所以有了下面的记录
一、excel数据导入mysql数据库可以有很多种
- 写python脚本
- 写shell脚本
- 直接用excel生成sql,在navicat中执行
由于本人对python和shell不熟,不想费这么大劲进行学习,所以选择了用excel直接生成sql
二、用excel方法进行导入数据的步骤
1、创建临时表 table_tmp
法一: 使用navicat直接导入并创建表
一路next到下面需要输入新建表的名字
然后是选择表字段,主键,然后导入就可以了
法二 手动创建数据库表
-- 创建表
create table change_tmp(id varchar(50) primary key, balance decimal(20,4));
2、生成用excel拼接sql
用excel生成数据值
复制到nodepad拼全
-- 用excel生成批量的insert语句 只要生成括号的内容就可以了 如:
=CONCATENATE("('",A2,"',",B2,"),")
可以生成以A2,B2为数据源的括号内容 ('dd',23.2), 单元格需要用双引号+逗号标识 ,如 ",B2,"
-- 插入表 最后生成的sql
insert into change_tmp values ('dd',23.2), ('d2d',1.2);
3、数据执行插入insert
insert into table_tmp values
('dd',23.2),
('d2d',1.2);
4、执行批量更新
update dest a, change_tmp b set a.balance = b.balance where a.id=b.id;