なんとなく利用したかったので調べて見た結果
・テーブルのみ一覧で取得
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;
でも、一応内容は同じでした。
異なるケースもあるのでしょうね。
なんにしても、少しお勉強になりました。
・テーブルのみ一覧で取得
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;
でも、一応内容は同じでした。
異なるケースもあるのでしょうね。
なんにしても、少しお勉強になりました。