数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

通过上篇博客分享了通过使用navicat数据库可视化工具编写sql语句的方式来应用存储过程。上面方式大家可以发现一些问题,如果要改的字段较多的话,可能要调用执行多个存储过程,对后面的使用带来烦恼,并且不易管理。

根据以上问题,我1.考虑到可以将命令写在bat脚本文件中,通过cmd命令执行.bat脚本文件来统一执行命令;2.或者直接在cmd命令窗口连接mysql数据库,操作某一数据库,将脚本命令复制过来执行。以下只说明第一种方式。其方法如下:

1.首先我在d盘下创建一个sql_bat文件夹,并在文件夹里创建如下几个文件,注意文件后缀:

             数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

其中分为三种,分别是:

create_procedure —— 创建存储过程

call_procedure —— 调用存储过程

drop_procedure —— 删除存储过程

并且每个功能都分为.sql和.bat两个文件。

2.第二,在.sql文件中编写相应的创建,调用,删除存储过程的命令。命令代码分别是:

 a.create_procedure.sql —— 创建

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

 b.call_procedure.sql —— 调用

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

 c.drop_procedure.sql —— 删除

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

通过三个sql文件代码,很容易就发现第一行到第4行内容是相同的,其中

use test 命令 —— 表示使用名为test的数据库;

go 命令 —— 表示批量执行多个sql语句;

delimiter // 命令 —— 表示将结束符更改为“//”。 这是因为在mysql中,MYSQL的默认结束符为";"。在mysql解释器中判断该段命令是否结束,mysql是否可以执行。由于执行多条sql时,会有分号,如果第一行就有分号,那后面的就不能批量执行。因此要加delimiter 来更改结束符,最后再改回来就好。

3.第三,要在.bat脚本文件中编写连接mysql数据库和指定数据库和要执行的文件名称带后缀命令,如下图:

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

根据功能划分,命令代码分别是:

 a.create_procedure.bat —— 创建

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

 b.call_procedure.bat —— 调用

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

 c.drop_procedure.bat —— 删除

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

4.最后,打开dos命令窗口(快捷键 win + r ,输入cmd 并回车),命令进入sql_bat文件夹目录下,如下图:

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

根据需要输入命令——.bat后缀的文件,回车enter,就会批量执行相应的sql文件。各功能文件分别执行如下图:

 a.create_procedure.bat —— 创建

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

 b.call_procedure.bat —— 调用

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

 c.drop_procedure.bat —— 删除

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

没报错就表示已经命令执行成功了,可以打开navicat可视化工具连接mysql数据库查看相关信息。

数据迁移(二)——统一替换指定数据库所有表中指定字段的值(通过cmd命令执行.bat脚本文件的形式应用存储过程)

以上就是通过cmd命令窗口执行.bat脚本文件来批量执行创建,调用,删除多个存储过程的分享。

感谢大家捧场,其中若有不合理之处或其他建议,欢迎大家留言提出,共同学习,感谢!

 

参考相关资料网址:

https://www.cnblogs.com/nickup/p/6628892.html --- mysql中delimiter详解

https://zhidao.baidu.com/question/922487236497500819.html --- 如何在一个bat文件中执行多个sql语句

https://blog.csdn.net/weixin_34380781/article/details/93691955 --- mysql命令行下建立存储过程

https://www.cnblogs.com/dengyungao/p/8336948.html --- cmd命令窗口连接mysql的命令大全