Excel 更改数据同步更新到Mysql数据库
刚上班,领导给我提出一个需求,想要每天更新Mysql数据库中的原有商品订单状态,添加新的商品订单状态。因为公司目前的数据库只能添加数据,不能更改数据,想要更改原有的数据,只能将原有的数据清空,再导入新的数据。从3月12日入职试岗到3月23日,正式想出一个比较不错的解决方法,耗时12天。
记录下思考过程:
首先数据库-物流状态表,长这样:
刚开始的思路:
乍一看,蛮简单的嘛,因为id是自增的没有实质作用,只要通过回执单号,update 更改状态和发货时间、更新时间就可以了,然额,,,,百度好多,并没有找到合适的。
那就问问我们数据部吧,他们给的方案:先查询再删除。语句如下:
查询所有状态为”未完成”从订单号在(所有状态为”已完成”的订单号)中的订单号,删除这些订单号的数据where条件为状态为”未完成” or “在途” ...
select * from 台湾物流状态 where 订单号 in (
select 订单号 from 台湾物流状态 where 物流状态="已完成")
and 物流状态="在途"
先执行查询语句,核对信息完整无误后,将select * 换成delete ,
执行删除语句,将需要删除的数据进行删除。
然而,光查询语句就用了900多秒,我勒个去,。
优化前:955.344s
select * from 台湾物流状态 where 订单号 in (
select 订单号 from 台湾物流状态 where 物流状态="已完成")
and 物流状态="在途"
第一次优化后,使用字段查询:393.244s
select `回执单号`,`状态` from `香港物流状态` a where EXISTS
(
select 回执单号 from `香港物流状态` where 回执单号=a.`回执单号`)
and 状态="在途"
使用*号查询:394.239s
select * from `香港物流状态` a where EXISTS
(
select 回执单号 from `香港物流状态` where 回执单号=a.`回执单号`)
and 状态="在途"
然后同事反馈还是慢,改呗。
转换思路:
后来想使用触发器,,,,但是没有相似的例子可以直接应用,大都是通过一张表数据的改变来修改另一张表的数据,所以先将这个思路放一边。
再换思路:
想到之前在家将excel和mysql连接起来,公司使用的是wps,所以下载mysql驱动ODBC,将wps和mysql连接起来,差不多就是下面的这个方式:
WPS表格连接mysql数据库
https://jingyan.baidu.com/article/d169e18617159b436711d862.html
然而这种方式不能在Excel中编辑数据然后保存在数据库中,不能满足需求,故舍弃。
想到我在家使用的是Office2010的excel for mysql插件,很简单的连接数据库插件,但是公司电脑office版本是2007版本的,试了一下,安装上插件,但是不显示下面这个东东:
使用教程链接:MySQL for Excel简介 http://blog.sina.com.cn/s/blog_731d4f750102uxpw.html
MySQL for Excel 安装包下载:https://dev.mysql.com/downloads/windows/excel/
没办法,下载office2010(中间出了一个小bug,用激活工具激活2010后,每次打开excel还是会出现重新配置;;只要把其他版本的office和wps卸掉,不保留其他配置就没事了;经测试,2010以上版本都可以使用)。
2010安装成功,出现上面的Mysql for excel插件,然后正常连接数据库。新!MySQL for Excel:编辑数据
功能一:
新!Excel for MySQL 编辑数据:
https://www.mysql.com/why-mysql/windows/excel/edit/
点击这个 Edit MySQL Data 这个功能,并且要勾上第二个图 “√”这个选项,就可以在Excel中修改数据后自动保存在数据库中(修改后的数据在Excel中用绿色填充)。
功能二:
追加数据到已存在的表:
点击这个功能,
选择 Automatic的选项,
点击左下角的高级选项:
在最后一个选项,选中如下图所示:
之后就是确定了,然后
点击append,就可以实现追加数据到已存在的表,基本就是一分钟以内的事情,搞定,
Excel 更改数据同步更新到Mysql数据库的更多相关文章
- python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图
python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...
- 从Excel中读取数据并批量写入MySQL数据库(基于MySQLdb)
一.Excel内容如下,现在需要将Excel中的数据全部写入的MySQL数据库中: 二.连接MySQL的第三方库使用的是“MySQLdb”,代码如下: # -*- coding:utf-8 -*-im ...
- (转)如何将 Excel 文件导入到 Navicat for MySQL 数据库
场景:工作中需要统计一段时间的加班时长,人工统计太过麻烦,就想到使用程序实现来统计 1 如何将 Excel 文件导入到 Navicat for MySQL 数据库 Navicat for MySQL ...
- 做ETL的时候用到的数据同步更新代码
这里是用的从一个库同步到另一个库,代码如下 private void IncrementalSyncUpdate(string fromConn, string toConn, Dictionary& ...
- Capistrano:自动完成多台服务器上新版本的同步更新,包括数据库的改变
https://baike.baidu.com/item/Capistrano/6844928?fr=aladdin Capistrano是一种在多台服务器上运行脚本的开源工具,它主要用于部署we ...
- android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?
通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...
- PHP批量替换MySql数据库中的数据内容(替换MySql数据库内容源码)
PHP批量替换MySql数据库内容 UTF-8 1.0版 <?php //声明 //1.本源码开发意图:作者在使用一些CMS建站的时候发现很多CMS把网址写入到数据库了,如果换网址,那么就需要更 ...
- 数据存储之使用mysql数据库存储数据
推荐安装mysql5.7环境: 官网下载:https://dev.mysql.com/downloads/installer/5.7.html 如果提示没有.NET Framework框架.那么就在提 ...
- 使用Sqlserver事务发布实现数据同步(sql2008)_Mssq l数据库教程
事务的功能在sqlserver中由来已久,因为最近在做一个数据同步方案,所以有机会再次研究一下它以及快照等,发现还是有很多不错的功能和改进的.这里以sqlserver2008的事务发布功能为例,对发布 ...
- node 爬虫 --- 将爬取到的数据,保存到 mysql 数据库中
步骤一:安装必要模块 (1)cheerio模块 ,一个类似jQuery的选择器模块,分析HTML利器. (2)request模块,让http请求变的更加简单 (3)mysql模块,node连接mysq ...
随机推荐
- ls的输出格式
在Linux中,如果在一个目录下面执行ls -al命令,输出格式如下: ls -al总共输出7列,下面对每一列进行说明. 第一列表示这个文件的权限与类型,它总共有10位,每个位的作用如下图所示: 其中 ...
- 学习c# 7.0-7.3的ref、fixed特性并在Unity下测试
1.ref的一些运用 1.1 ref readonly 关于ref,一个主要应用是防止结构体拷贝,若返回的结构体不需要修改则用ref readonly,类似c++的const标记 : private ...
- 密码学—DES加密算法
文章目录 DES流程 DES细节 生成密钥 DES加密 E盒扩展 S盒替换 P盒置换 DES流程 因为DES是对比特流进行加密的,所以信息在加密之前先转为二进制比特流 1:生成16把密钥 只取给出的密 ...
- 两个List合并,List集合中的对象根据某个相同的属性,合并另外属性
简介 (Introduction): 背景 需要对数据进行拼接,拼接的数据是存在两个不同的表中,但是,拼接后要作为一个对象显示,但是,这样的对象又是多个的. 结构图数据库模型 id name 1008 ...
- IPv6 — 路由方式
目录 文章目录 目录 前文列表 IPv6 的路由 前文列表 <IPv6 - 网际协议第 6 版> <IPv6 - 地址格式与寻址模式> <IPv6 - 协议头> & ...
- Android 13 - Media框架(11)- MediaCodec(一)
关注公众号免费阅读全文,进入音视频开发技术分享群! MediaCodec 是 Android 平台上音视频编解码的标准接口,无论是使用软解还是硬解都要通过调用 MediaCodec来完成,是学习 An ...
- MR+meta分析的摘录
第四篇公众号:来自微信 天桥下的卖艺者 零基础说科研,仅为个人学习用,如有侵权,可以删除 吸烟没什么创意,唯一的创意就是加入了MR和meta分析,作者显示介绍吸烟与多种疾病之间的因果关系扔不明确, 第 ...
- nginx map模块使用和配置
主机 IP 备注 master1 10.0.0.63 master2 10.0.0.64 1. NGINX MAP模块与NGINX GEO模块 在通常情况下,使用nginx基于 ip 限制访问请求频率 ...
- C# asp.net mvc 创建虚拟目录
使用背景: 虚拟目录(virtual directory),计算机术语,每个 Internet服务可以从多个目录中发布.通过以通用命名约定 (UNC) 名.用户名及用于访问权限的密码指定目录,可将每个 ...
- nodejs加jq来实现下载word文档
先看效果 浏览器上: 下载的效果: 第一步是自己先搭建前端页面把自己写的结构数据全部传到后端 下面就是整个的结构 结构分析后端拿到数据后端解析: 第一层菜单层: { role: '分析报告', //顶 ...