以编程方式创建postgreSQL数据库

以编程方式创建postgreSQL数据库,postgresql,Postgresql,我正在Visual Studio 2012中构建一个应用程序,我希望每次运行该应用程序时都检查某个postgres数据库是否存在,如果不存在,则使用指定的表等创建一个 我在谷歌上到处看看,运气不好。我希望从我的应用程序中以编程方式创建数据库,但如果有人知道我是否可以使用安装程序向导以及如何使用安装程序向导来创建数据库,那也会很好。应用程序仅在windows上运行,但在所有计算机上运行,没有例外。无论使用何种工具和编程语言,您希望使用的方法都是相同的: 在您的程序中,在启动过程中,连接到Postg

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


我在谷歌上到处看看,运气不好。我希望从我的应用程序中以编程方式创建数据库,但如果有人知道我是否可以使用安装程序向导以及如何使用安装程序向导来创建数据库,那也会很好。应用程序仅在windows上运行,但在所有计算机上运行,没有例外。

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

  • 在您的程序中,在启动过程中,连接到PostgreSQL安装中始终可用的
    template1
    postgres
    数据库,并发出
    SELECT 1 FROM pg_database WHERE datname=?
    ,作为第一个参数传递所需的数据库名称

  • 检查返回的结果集。若返回了一行,那个么数据库就存在了,就完成了,不需要进一步的操作。如果未返回任何行,则数据库不存在,您需要创建它,因此:

  • 发布一个
    创建数据库mydatabasename所有者
    编码
    ,进行编码>,以自行创建数据库。新数据库将为空

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


  • 如果您想在安装过程中创建数据库,这主要取决于您和您的安装程序,但通常只需在PostgreSQL启动后调用
    create DATABASE
    ,然后输入
    psql
    脚本即可。

    非常感谢!我会尝试让它变得非常有用和清晰@你很乐意帮忙。PostgreSQL是一个可以嵌入应用程序的数据库,但请让您的应用程序将其PostgreSQL副本安装在非默认端口(即:非5432)、服务帐户和数据库位置,以便它不会与用户自己可能安装的任何PostgreSQL相冲突。您的安装程序应该创建自己的服务,或者您的应用程序应该使用
    pg_ctl
    按需启动/停止PostgreSQL在创建数据库之前,我必须以用户“postgres”的身份连接到数据库“postgres”。我不认为这应该被关闭,而且大多数名称都不相似,所以我认为它们来自tag.followers。重新开放的提名,虽然说实话,这与visual studio没有任何关系,所以我正在删除标签。是的,谢谢你所做的一切。我不确定我是否理解什么是“CloseVote”,因为我对stackoverflow论坛非常陌生。但无论如何感谢您的贡献!:)