【问题标题】:Postgres database create if not exists [duplicate]Postgres数据库如果不存在则创建[重复]
【发布时间】:2013-03-26 18:33:25
【问题描述】:

是否有类似 CREATE TABLE IF NOT EXISTS 的用于创建数据库的方法?

背景:我正在编写一个脚本来在未知系统上的 PostgreSQL 中自动设置模式。我不确定数据库(甚至架构的一部分)是否已经部署,所以如果某些结构已经存在,我想构建我的代码以使其不会失败(或者理想情况下甚至显示错误)。我想将阻止我创建数据库的错误(因此中止未来的架构更改,因为它们将不起作用)与此错误区分开来。

【问题讨论】:

    标签: sql database postgresql ddl


    【解决方案1】:

    不,但您可以查询 pg_catalog.pg_database 表以查看它是否存在。

    【讨论】:

    • 你需要在函数中执行此操作,这在 9.3 中不起作用,因为 Postgres 不允许从函数内部或多命令字符串创建/删除数据库。
    • 但你可以用 php、python、perl 或任何你喜欢的方式编写外部脚本。
    • 使用 DROP TABLE IF EXISTS "foo" 不是更简单吗?创建表“foo”;
    • @Enwired - 如果您不想删除现有表(如果存在)怎么办?如果它不存在,您可能想创建它,但如果它存在,请不要理会它。
    • 如果这是您想要的,那么我指定的命令对您没有用处。最初的问题实际上是关于创建数据库,而不是表,所以无论如何我的评论不小心偏离了主题!对不起。
    猜你喜欢
    • 2019-03-06
    • 2019-09-09
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多