初めてHSQLを使用しています。HSQL データベース サーバー エンジンを使用して DatabaseMANagerSwing を接続すると、PUBLICスキーマが既に存在し、そのスキーマの下に Customers などのいくつかのテーブルが含まれていることがわかりました。
HSQL データベース サーバー エンジンとしてモードを使用する場合、データ (つまり、パブリック スキーマとそのスキーマのテーブル) はどこに保存されるのでしょうか?
誰かがこれについて説明してもらえますか?
よろしく、
初めてHSQLを使用しています。HSQL データベース サーバー エンジンを使用して DatabaseMANagerSwing を接続すると、PUBLICスキーマが既に存在し、そのスキーマの下に Customers などのいくつかのテーブルが含まれていることがわかりました。
HSQL データベース サーバー エンジンとしてモードを使用する場合、データ (つまり、パブリック スキーマとそのスキーマのテーブル) はどこに保存されるのでしょうか?
誰かがこれについて説明してもらえますか?
よろしく、
データは、HSQLDBを埋め込みモードで実行している場合と同じようにファイルに保存されます。サーバーによって管理される各データベースのファイルを保存する場所を構成するには、サーバーの起動時にコマンドライン引数を指定できます。
java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:mydb --dbname.0 xdb
または、プロパティファイルに頼る:
database.0=file:/opt/db/accounts
dbname.0=an_alias
database.1=file:/opt/db/mydb
dbname.1=enrollments
database.2=mem:adatabase
dbname.2=quickdb
接続層は物理層から独立しています。つまり、元々サーバープロセスによって埋め込まれたモードで作成されたデータベースファイルにアクセスでき、その逆も可能です。
Anthony による回答では、データベース ファイルの場所を指定する方法について説明しています。
Re: 「PUBLIC スキーマが既に存在し、そのスキーマの下に Customers などのいくつかのテーブルが含まれていることを確認しました。」
PUBLIC スキーマは、新しいデータベースに既に存在します。ただし、表示されたテーブルは、DatabaseManager メニューの [オプション] 項目をクリックし、ドロップダウン メニューから [テスト データの挿入] を選択したときに作成されたものです。
データベース ファイルの場所を指定せずに HSQLDB の Server インスタンスを起動すると、サーバーを起動するための Java コマンドを実行したディレクトリにファイルが作成されます。
データベースには複数のスキーマを含めることができます。すべてのスキーマは、同じデータベース ファイルのセットに格納されます。