通过上篇博客分享了通过使用navicat数据库可视化工具编写sql语句的方式来应用存储过程。上面方式大家可以发现一些问题,如果要改的字段较多的话,可能要调用执行多个存储过程,对后面的使用带来烦恼,并且不易管理。
根据以上问题,可有如下方法解决:
1.考虑到可以将命令写在bat脚本文件中,通过cmd命令执行.bat脚本文件来统一执行命令。
2.或者直接在cmd命令窗口连接mysql数据库,操作某一数据库,将脚本命令复制过来执行。
以下只说明第一种方式。其方法如下:
1.首先我在d盘下创建一个sql_bat文件夹,并在文件夹里创建如下几个文件,注意文件后缀:
其中分为三种,分别是:
create_procedure —— 创建存储过程
call_procedure —— 调用存储过程
drop_procedure —— 删除存储过程
并且每个功能都分为.sql和.bat两个文件。
2.第二,在.sql文件中编写相应的创建,调用,删除存储过程的命令。命令代码分别是:
- create_procedure.sql —— 创建
- call_procedure.sql —— 调用
- drop_procedure.sql —— 删除
通过三个sql文件代码,很容易就发现第一行到第4行内容是相同的,其中
use test 命令 —— 表示使用名为test的数据库;
go 命令 —— 表示批量执行多个sql语句;
delimiter // 命令 —— 表示将结束符更改为“//”。 这是因为在mysql中,MYSQL的默认结束符为";"。
在mysql解释器中判断该段命令是否结束,mysql是否可以执行。由于执行多条sql时,会有分号,如果第一行就有分号,那后面的就不能批量执行。因此要加delimiter 来更改结束符,最后再改回来就好。
3.第三,要在.bat脚本文件中编写连接mysql数据库和指定数据库和要执行的文件名称带后缀命令,如下图:
根据功能划分,命令代码分别是:
a.create_procedure.bat —— 创建
b.call_procedure.bat —— 调用
c.drop_procedure.bat —— 删除
4.最后,打开dos命令窗口(快捷键 win + r ,输入cmd 并回车),命令进入sql_bat文件夹目录下,如下图:
根据需要输入命令——.bat后缀的文件,回车enter,就会批量执行相应的sql文件。各功能文件分别执行如下图:
- create_procedure.bat —— 创建
- call_procedure.bat —— 调用
- drop_procedure.bat —— 删除
没报错就表示已经命令执行成功了,可以打开navicat可视化工具连接mysql数据库查看相关信息。
以上就是通过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的命令大全