【MySQL】プロシージャの内容を確認する方法【information_schema.ROUTINES 】

  • 1
    Like
  • 0
    Comment

プロシージャの更新日付を見るときによく使うselect文なので、メモっておく:pencil2:
業務で、一時やたらとプロシージャがデグレることがあり、しょっちゅう使ってた・・・。

プロシージャの内容を確認する

もっといろんな情報が(文字コードとかプロシージャの内容とか)見れるけど、たくさんありすぎるので、個人的に普段はこれくらいまでカラムを絞ることが多いです。

select
  ROUTINE_NAME -- プロシージャ名
  , ROUTINE_SCHEMA -- スキーマ名
  , LAST_ALTERED -- 最終更新日時
from information_schema.ROUTINES
where
  ROUTINE_SCHEMA = 'testSchema'       -- スキーマ名を指定する
  and ROUTINE_TYPE = 'PROCEDURE'   -- プロシージャだけを検索する
  and ROUTINE_NAME like 'p_%'      -- プロシージャの名称部分一致
order by ROUTINE_NAME
;

information_schema.ROUTINESとは

プロシージャやファンクションの一覧を保持しているテーブル。
普通のselect文なので、whereもorder byなどが使えるのが便利:pig:

プロシージャの一覧を見るには

SHOW FUNCTION STATUS;

も十分使えるけど、やっぱりwhere句が使える方が捗る:bangbang: