すべてのMySQLストアドプロシージャ呼び出しを検索しますか? 質問する

すべてのMySQLストアドプロシージャ呼び出しを検索しますか? 質問する

私が時々使用し、変更する特定の MySQL DB について、最近、いくつかのテーブルとストアド プロシージャに変更を加える必要がありました。この DB には、プロシージャが他のプロシージャを呼び出す場所があります。これらの変更されたプロシージャのパラメータを変更する必要があるすべての場所を探すのは面倒だったので、DB をダンプし、ダンプされたファイルでテキスト検索を実行して、すべての CALL ステートメントを見つけることにしました。

もっと簡単で良い方法はないでしょうか。SO でざっ​​と検索し、解決策を Google で検索しましたが、答えは見つかりませんでした。呼び出しのリストを作成する方法や、それを簡単にするユーティリティがあるのではないかと思いますが、まだ解決策は見つかっていません。

何か案は?

ベストアンサー1

さて、私は最終的に次の解決策を見つけました:

INFORMATION_SCHEMA.ROUTINES テーブルには、ある SP から別の SP への CALL を追跡するときに非常に役立つ情報が含まれています。私は次のものを使用しました。

SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_DEFINITION LIKE "%SomeProc%";

これにより、SomeProc を含むすべてのストアド プロシージャが取得されました。

おすすめ記事