2007年07月17日

データベースのテーブル、インデックス、シーケンス、ビュー等を検索する件

postgresで、データベースにある、テーブルやインデックス、ビュー、シーケンスの一覧を調べたいことがあります。
これらはシステムカタログという場所に保存されています。
postgresではこのシステムカタログは通常のテーブルだそうです。

"pg_classカタログはテーブルと、その他に列を保有しているもの、あるいはテーブルに似た全てのものを目録にしています。"

だそうです。
なんだか色々なカラムがありますが、relkindの値を調べるとテーブルなのか等がわかるそうです。
r = 通常のテーブル
i = インデックス
S = シーケンス
v = ビュー
c = 複合型
s = 特別
t = TOASTテーブル

という事なので、

例えば、
select * from pg_class where relkind = 'S'
で、シーケンスの一覧を検索する事ができます。

これはどこから検索してくるのかと調べてみました。
pgadmin Vで、「表示」メニューの「システムオブジェクト」にチェックを付けると、調べたいデータベースの下に表示されていなかった何やらが出てくるようになります。
スキーマpg_catalogのコメントに、"System catalog schema"とあります。
テーブルも色々出てきますが、その中にpg_classとありました。
これですね。
ただこの中を直接いじると色々良くないことが起きるようです。
普通にCREATE DATABASEとかしましょう。
posted by ほえ at 17:22| Comment(0) | TrackBack(0) | PostgreSQL | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/48136441
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。