Mysql資料庫如何檢視某張表table被哪些儲存過程procedure使用過
阿新 • • 發佈:2018-11-04
一、摘要
由於程式碼重構,修改了表結構,開發人員修改完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查詢。