しすてむ さんぽみち。

適当なしすてむ紹介など。ようはくだらないBlog(´▽`)

テーブル一覧、シーケンス一覧 取得

2009-06-30 23:20:46 | postgres
なんとなく利用したかったので調べて見た結果

・テーブルのみ一覧で取得
select * from pg_tables where not tablename like 'pg%' order by tablename;

pg_tables でテーブルの一覧が取得できるけど、pg_~とかいう たぶんシステムで利用していると思われるテーブルが出てくるので not likeで除外しているようでした。
参考:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/psql_k17.htm

・シーケンスのみ一覧で取得
SELECT c.relname FROM pg_class c LEFT join pg_user u ON c.relowner = u.usesysid WHERE c.relkind = 'S' order by c.relname;

postgresの知識が浅はかなのでよく理解できてないんですが relkind = 'S' がシーケンスを指定しているようでした。関連付けの部分は、おそらく誤りを減らす対応なのかなと思います。
参考:http://d.hatena.ne.jp/phantasmist/20080327

SELECT c.relname FROM pg_class c where c.relkind = 'S' order by c.relname;
でも、一応内容は同じでした。

異なるケースもあるのでしょうね。
なんにしても、少しお勉強になりました。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。