Mysql数据库如何查看某张表table被哪些存储过程procedure使用过

一、摘要

由于代码重构,修改了表结构,开发人员修改完java后台代码并内测没问题后提交业务部门测试时发现,新客户取不到产品价格,原因是存储过程调用的还是旧数据表。为此,需要先找出哪些存储过程使用了这些表,然后修改。那么问题来了,mysql数据库如何查看哪些存储过程使用了这些数据表呢?

二、mysql数据库存储过程信息查看

1、show 命令

1) SHOW STATUS查看存储过程状态

SHOW { PROCEDURE | FUNCTION } STATUS [ LIKE ‘pattern’ ]
SHOW PROCEDURE STATUS LIKE ‘proc_%’
查看服务器上以proc_开头的所有存储过程状态信息。

2) SHOW CREATE查看存储过程定义

SHOW CREATE { PROCEDURE | FUNCTION } sp_name
SHOW CREATE PROCEDURE xdd_tst.proc_get_client_funds_info;
查看xdd_tst库proc_get_client_funds_info的sql定义。

2、利用mysql库的proc表

查询使用了表sale_client_goods的所有存储过程,sql如下:

select * from mysql.proc
where db = 'xdd_tst' and type = 'PROCEDURE'
and body like '%sale_client_goods%'

输出结果:
在这里插入图片描述
得到存储过程列表后,就逐个修改吧!

三、可能存在的问题

1、数据库访问权限问题

2、blob类型字段查看问题

比如一开始使用mac电脑上的navicat查看proc表的blob类型字段就查看不了,后来使用sqlyog客户端工具就没任何问题,但是不影响sql查询。

猜你喜欢

转载自blog.csdn.net/chuangxin/article/details/83444879