2

我是 PostgreSQL 数据库的新手。我的可视化 C++ 应用程序需要做的是创建多个表并从中添加/检索数据。

我的应用程序的每个会话都应该创建一个新的、不同的数据库。我可以使用当前日期和时间作为唯一的数据库名称。

还应该有一个删除所有数据库的选项。

我已经弄清楚了如何连接到数据库、创建表以及将数据添加到表中。如果用户想清除所有数据库,我不确定如何为每次运行创建一个新数据库或如何检索数据库的数量和名称。

请帮忙。

4

1 回答 1

3

请参阅文档中的 libpq 示例。该示例程序向您展示了如何列出数据库,以及一般如何对数据库执行命令。那里的示例代码很容易适应创建和删除数据库。

创建数据库是一个简单的CREATE DATABASESQL 语句,与任何其他 libpq 操作相同。您必须连接到一个临时数据库(通常是template1)才能发出CREATE DATABASE,然后断开连接并与您刚刚创建的数据库建立新连接。

与其创建新数据库,不如考虑创建新模式。麻烦少得多,因为您需要做的就是更改search_path表引用或为表引用添加前缀,因此您不必断开连接并重新连接即可更改架构。请参阅有关架构的文档

不过,我质疑你设计的智慧。应用程序创建和删除数据库(或表,临时表除外)作为其操作的正常部分很少是一个好主意。也许如果您详细说明了为什么要这样做,我们可以提出可能比您当前的方法更容易和/或性能更好的解决方案。

于 2012-07-25T23:58:38.653 回答