PostgreSQL可以与磁盘数据库一起使用吗?

时间:2009-10-26 19:23:34

标签: postgresql jdbc firebird embedded-database

目前,我有一个应用程序在嵌入模式下使用Firebird连接到存储为硬盘驱动器上的文件的相对简单的数据库。我想切换到使用PostgreSQL做同样的事情(是的,我知道它有点过分)。我知道PostgreSQL不能在嵌入式模式下运行,这很好 - 我可以让服务器进程运行,这对我没问题。

我正在试图找出一个能实现这一目标的连接字符串,但一直没有成功。我尝试过以下各种变体:

JDBC:PostgreSQL的:C:\ myDB.fdb
JDBC:在PostgreSQL:// C:\ myDB.fdb
JDBC:在PostgreSQL://本地主机:端口] /C:\myDB.fdb

但似乎没有任何效果。 PostgreSQL的directions没有包含此案例的示例。这甚至可能吗?

3 个答案:

答案 0 :(得分:1)

你可以欺骗它。如果您在类UNIX系统上运行PostGRESQL,那么您应该能够创建一个RAMDISK并将其用于数据库存储。这是一个非常好的一步一步guide for RAMdisks on Linux

总的来说,我建议在RAM类型的应用程序中使用SQLITE作为SQL数据库。

答案 1 :(得分:0)

Postgres数据库不是单个文件。每个表和数据目录中的每个索引都有一个文件,位于数据库的目录中。所有文件都将使用db / table / index的对象ID(OID)命名。

JDBC url指向数据库名称,而不是任何特定文件: jdbc:postgresql:foodb(隐含localhost)

如果“行为与内存相同的磁盘”,则表示数据库仅在程序的生命周期内存在,没有理由不能在程序启动时创建数据库并在程序退出时将其删除。请注意,这只是用于创建数据库的DDL,而不是通过init-db程序创建数据目录。您可以连接到默认的'postgres'数据库,创建数据库然后连接到它。

答案 2 :(得分:0)

Firebird 2.1以后版本支持全局临时表,这些表仅在数据库连接期间存在。

语法类似于CREATE GLOBAL TEMPORARY TABLE ......在COMMIT PRESERVE ROWS上