1

mysql をデータストレージとして直接使用するレガシー アプリケーションの単体テストを作成しています。

私たちが決定したアプローチは、データベースへのアクセスを独自のレイヤーに抽象化し、依存関係を注入することです。hsqldb をメモリ内データベースとして使用して、そのレイヤーのテストも作成します (速度の理由から)。

現在のコードは、名前にダッシュが含まれるスキーマを使用しています。私が理解できる限り、hypersql にはそれをエスケープする方法がありませんか?

データベース層にスキーマ名を挿入する必要がありますか、またはダッシュを受け入れるように hsqldb を構成する方法はありますか?

4

1 に答える 1

1

データベース アクセス コードが のようなものを使用している場合SELECT * FROM schema-name.tablename、またはSCHEMA-NAME.tablename大文字と小文字のバリエーションがある場合は、HyperSQL でこれを使用する必要があります。

CREATE SCHEMA "SCHEMA-NAME" AUTHORIZATION DBA

and

SELECT * FROM "SCHEMA-NAME".tablename

すべてのデータが同じスキーマにある場合は、このスキーマをデフォルトとして設定し、SQL クエリで「SCHEMA-NAME」を使用しないようにすることができます。

于 2012-04-16T10:56:07.747 に答える