質問

現在、埋め込みモードでFirebirdを使用して、ハードドライブにファイルとして保存されている比較的単純なデータベースに接続するアプリケーションがあります。 PostgreSQLを使用して同じことをしたい(はい、やりすぎだとわかっています)。 PostgreSQLは埋め込みモードで動作できないことを知っています。それで問題ありません。サーバープロセスを実行したままにしておけば問題ありません。

これを実現する接続文字列を見つけようとしていますが、失敗しました。次のバリエーションを試しました:

jdbc:postgresql:C:\ myDB.fdb
jdbc:postgresql:// C:\ myDB.fdb
jdbc:postgresql:// localhost:[port] /C:\myDB.fdb

しかし、何も機能しないようです。 PostgreSQLの方向には、この場合の例は含まれていません。これも可能ですか?

役に立ちましたか?

解決

Postgresデータベースは単一のファイルではありません。データベースのディレクトリ内のデータディレクトリには、各テーブルと各インデックスに1つのファイルがあります。すべてのファイルには、db / table / indexのオブジェクトID(OID)が付けられます。

JDBC URLは、特定のファイルではなくデータベース名を指します。 jdbc:postgresql:foodb(localhostが暗示されています)

「メモリのように振る舞うディスク」によって、データベースがプログラムの存続期間のみ存在することを意味する場合、プログラムの開始時にデータベースを作成し、プログラムの終了時に削除できない理由はありません。これはDBを作成するためのDDLであり、init-dbプログラムを介してデータディレクトリを作成するのではないことに注意してください。デフォルトの「postgres」データベースに接続し、データベースを作成してから接続できます。

他のヒント

あなたはそれをだますことができます。 UNIXのようなシステムでPostGRESQLを実行している場合は、RAMDISKを作成してデータベースストレージに使用できるはずです。手順は次のとおりです。 Linux上のRAMdiskのガイド

>

ただし、一般的に、RAMタイプのアプリケーションのSQL dbにはSQLITEを使用することをお勧めします。

Firebird 2.1以降では、グローバル一時テーブルがサポートされます。これは、データベース接続中のみ存在します。

構文は、CREATE GLOBAL TEMPORARY TABLE ... ON COMMIT PRESERVE ROWSのようになります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top