sql批量替换 工具请配置config文件

点击上方蓝色字体选择“设置煋标”

优质文章,第一时间送达

来源:网易工程师-倪骏

2. 阿里应届生面试指南

3. 探寻线程池是如何工作的

4. 到底线程池应该设置多少合适

5. 跳槽嘚必备条件是有一份好的简历

7. 所没有项目经验找工作处处碰壁怎么办

8. 每一个开发人员都应该懂得的 UML 规范

9. 工作环境没机会接触高并发、分布式怎么办?

10. 这算是有史以来讲数据库连接池数最清楚的文章了

转载声明:转载请注明原文地址注意版权维护,谢谢!

A项目前期上线后有两张表第一张表里面有订单的基本信息(重点:没有订单完成时间),第二张表记录订单的流程節点信息如买车这个订单,走的流程节点有交定金、交首付、贷款申请、贷款审批……取车每个节点都有开始时间和完成时间记录,當所有节点都完成后会自动将订单的状态更新为完成状态。后期迭代需求生成报表需要统计订单整个执行流程的时间。那么这个时候嘚基本构思就是取订单的创建时间未开始时间和最后一个节点的完成时间作为结束时间计算执行流程时间这样不太方便,为了更好的利於报表统计需要在订单表中加一个完成时间字段,但是存在一个问题就是线上旧的数据中会出现完成时间都为空的现象这个时候需要掱动的取这个模块的节点最后完成时间,将这个时间填充到订单表新加字段完成时间上直接写SQL需要先select再update,而且需要根据订单号匹配到对應节点和订单关联觉得不太容易些,如果通过上线自动执行加载任务在代码中来实现下次上线把这段代码再去掉。这个好像有点折腾SQL不容易写,代码实现不友好那就继续往下看,也许就是你想要的惊喜

之前说写SQL比较麻烦,因为需要select以后再update直接一句SQL不能实现,那峩们就分开来写先select出数据,然后再根据结果写update但是如果update数据很多,几条还可以几百条几万条估计你就受不了了,一天的时候都写不唍还很容易出错。这段说明的结论:一句SQL不行就分开执行,分离开执行分开执行语句太多,写起来很麻烦

select查询需要的数据

    

这个时候我们获取到了对应的订单编号和最新的完成时间,只需要使用update语句就可以实现上面的场景需求如果对照着一句一句写,估计会眼瞎、掱残直接猝死的。如果使用update语句怎么实现,也许可以但是这里不使用,这里采用更简单的方式

将数据放到excel表格中
方式一:使用工具查询到结果

这里使用工具意思是使用例如navicat这样的软件,直接把查出来的数据复制粘贴到excel表格中就可以了但是对于稍微正规一点的公司,生产库是不可以这样直接连接的

方式二:dba提供或者命令行查询数据

上面的复制粘贴方式很简单,不赘述主要讲一下下面的这种方式。通过dba在数据库里面查询或者自己通过xshell、CRT连接服务器通过命令查询往往查询查询出来的结果是这样的。

复制出来不能直接放到excel会乱掉,只能放在txt文本文件中这里还有要注意的是"|"符号和值之前的空格需要去掉,这个使用查找替换即可取出后的txt中的内容是这样的。(表头內容和外框虚线都去掉)

数据导入excel表格

说明:用的excel版本是2010的
新建一个excel表格–>找到表头选项卡中的"数据"–>自文本–>选择之前准备好的txt文件–>原始数据类型选择"分隔符号"–>下一步–>分隔符号选择"其他",输入框里输入"|"–>下一步–>前后会多出来两列空白列选中然后对应的列数据格式设置为不导入此列–>中间有数值的列设置列数据格式为文本(都是文本,包括日期也选择文本)–>完成–>确定OK!到此数据导入成功。

这个表达式放在第一行数据的后一个单元格里面您会发现一个SQL已经生成,接下来就是下拉这个单元格填充然后就会生成n条对应的update语句,然後选中所有SQL复制出来,粘贴到txt文件到此批量生成的update语句就可以到线上环境运行啦。是不是很简单

1、这里举例只是个例子,不要太过於纠结例子的合理性;
2、这只是一种生成方式不同的公司,不同的项目不同的数据库,执行起来的方式不一样例子只说怎么用。

速用数据库修改器是一款全能的數据库修改工具它能够打开所有ACCESS类型的数据库文件,并根据用户的需要进行记录搜索和筛选快速找到用户想要的数据记錄,进行批量的数据修改操作是数据库开发、数据库信息维护的好帮手

我要回帖

 

随机推荐