気まぐれメモランダム / でたらめフィードバック

HSQLDB使い始めで引っかかったこと

公開:

何をいまさらと思われるでしょうが、最近Java用軽量RDBMS(関係データベース管理システム)であるHSQLDBを使う機会がありました。その出来のよさに感心することしきりなのですが、ちょっと引っかかったことがあったので、備忘録としてメモを残しておきます。もしかしたらいくつかはJDBC共通かもしれません。

  • トランザクションの開始ステートメント(START TRANSACTION)を他のステートメントと同時に実行しようとするとエラーになります
  • 自動コミット・モードが有効な状態ではトランザクション開始後も自動コミット・モードが優先され更新は即座にコミットされます。トランザクションを有効にするにはその前に自動コミット・モードを無効にする必要があります
  • SQLの規格の要求するcase insensitiveな予約語他のパースを、HSQLDBでは基本ラテンの文字の大文字への正規化で実現しています。メタデータには正規化された文字列が格納されます。そのためDDLで指定した小文字のスキーマ名をJDBCのAPIで指定すると期待した結果が得られないことがあります
    • 具体的にはjava.sql.DatabaseMetaDataインターフェース実装クラス(java.sql.ConnectionクラスgetMetaDataメソッド呼び出しでインスタンスが取得できます)の各メソッド(getTablesメソッドなど)は引数には正規化=大文字に変換された値を指定しなければなりませんし、戻り値は正規化=大文字に変換された値になっています

以上、参考になりましたら幸いです。

関連コンテンツ

Pick up work

最近のエントリ

アーカイブ

ブログ情報