H2 Database EngineのINFORMATION_SCHEMA(ちょっとだけ)
はじめに
H2 Database EngineにINFORMATION_SCHEMAと言うのがありまして、時々便利なのですがいかなるものなのか長らくの間、疑問でした。
軽く調べてみましたので、メモ。
INFORMATION_SCHEMAに含まれる情報
「どういった情報を含むテーブルが集まっているのだろう?」というあたりからして疑問だったのですが、どうやら、SQL92の「information schema」に定義されているようなものらしいです。
RoadmapのPriority 2に「SQL92のinformation schemaをサポートする(意訳)」というのが含まれておりました。
現状はどうあれ、SQL92の規格は参考になると言えそうです。
INFORMATION_SCHEMAに含まれるテーブル
H2のINFORMATION_SCHEMAにどんなテーブルが含まれているかですが、これが意外と良い情報がないです。
テーブルとカラム名だけで良ければSQL Grammarに載っていますが、それだけを知ってもねぇ……。
テーブルごとに何が入っているかの概要を知るには、SQL92に準拠している他のデータベースを参考にするのがお手軽だと思われます。
なので、そのようなデータベースに関するリンクを以下に1個だけ記述します。
- http://www.klab.jp/media/mysql/index4.html(「情報スキーマの一覧」というセクションに記述有り)
さいごに
気力の都合で半端な調査になってしまった…。
ちなみにお気に入りのテーブルは、「INFORMATION_SCHEMA.TABLES」です。
テーブル定義のSQL表現が調べられますので、トラブルシュート時によく使います。