最近のお仕事で、200のviewの中のソースの中を検索したい、という案件が出てきた。
DBはpgsql。
今請け負っている作業で、viewが200ある巨大なDBを使っているシステムがあるのだが、仮にabcテーブルに問題が見つかり、abcテーブルを読み込んでいるviewを調査してくれ、というのが内容だ。
viewで読み込んでいるテーブルを調査するには、viewのcreate文のソースを検索したい。
そんか事しようと思った事が今までなかったので調査。
試行錯誤した結果以下の方法で実現出来ました。↓
SELECT viewname FROM pg_views WHERE definition like ‘%abc%’;
viewのテーブル全部が
pg_views
で探せる。
ソースの中は
definition
だったようだ。