8

我正在 Visual Studio 2012 中构建一个应用程序,我希望每次运行它时检查某个 postgres 数据库是否存在,如果不存在,则使用指定的表等创建一个。

我在谷歌中环顾四周,没有运气。我希望以编程方式从我的应用程序中创建数据库,但如果有人知道我是否以及如何使用安装程序向导来做到这一点,那也很好。该应用程序旨在仅在 Windows 上运行,但在所有机器上均无例外。

4

1 回答 1

10

无论使用何种工具和编程语言,您想要使用的方法都是相同的:

  1. 在您的程序中,在启动期间连接到PostgreSQL 安装中始终可用的数据库并发出 atemplate1和作为第一个参数传递所需的数据库名称。postgresSELECT 1 FROM pg_database WHERE datname = ?

  2. 检查返回的结果集。如果返回一行,则表示数据库存在,您就完成了,不需要进一步的操作。如果没有返回行,则数据库不存在,您需要创建它,因此:

  3. 根据手册发出CREATE DATABASE mydatabasename;带有任何所需选项(如OWNERENCODING等)的 a 以自行创建数据库。新数据库将为空。

  4. 通过连接到应用程序中的新数据库并直接从应用程序发送一系列 SQL 命令来填充数据库,或者通过调用psqlshell 上的命令来读取sql脚本文件并将其发送到数据库。我通常更喜欢直接在我的应用程序中运行 SQL。

如果您想在安装期间创建数据库,这主要取决于您和您的安装程序,但它通常就像 CREATE DATABASE在 PostgreSQL 启动后调用一样简单,然后提供psql脚本。

于 2013-05-12T03:36:53.167 回答