PostgreSQL 11:如何修改 ;模式**如果 ;存在**也重命名…`

PostgreSQL 11:如何修改 ;模式**如果 ;存在**也重命名…`,postgresql,database-schema,Postgresql,Database Schema,上下文 我正在编写一个(Python)脚本来自动(重新)在PostgreSQL 11.2数据库上从头开始创建模式foo 我希望我的脚本能够处理以下两种情况: 我的数据库中已存在名为foo的架构 我的数据库中没有名为foo的架构 问题 我不是很勇敢,我宁愿保留这个已经存在的模式的副本,而不是简单地删除模式(如果存在foo) 但是,命令ALTER SCHEMA IF EXISTS foo重命名为foo_backup_2019-07-29T1317210不存在: # ALTER SCHEMA IF

上下文
我正在编写一个(Python)脚本来自动(重新)在PostgreSQL 11.2数据库上从头开始创建模式
foo

我希望我的脚本能够处理以下两种情况:

  • 我的数据库中已存在名为
    foo
    的架构
  • 我的数据库中没有名为
    foo
    的架构
问题
我不是很勇敢,我宁愿保留这个已经存在的模式的副本,而不是简单地
删除模式(如果存在foo)

但是,命令
ALTER SCHEMA IF EXISTS foo重命名为foo_backup_2019-07-29T1317210不存在:

# ALTER SCHEMA IF EXISTS foo RENAME TO foo_backup_2019-07-29T1317210;
ERROR:  syntax error at or near "EXISTS"
LINE 1: ALTER SCHEMA IF EXISTS foo RENAME TO foo_backup_2019-07-29T1...
问题

在我的数据库中已经存在这样的模式的情况下,如何重命名
foo


如果中存在
alter schema
修改
alter schema
语句,则不存在
alter schemapostgre@Y.K.你是对的,这就是为什么我要问这个问题:如果存在,如何模拟
改变模式?我认为已经有了一些很好的答案……如果存在
alterschema
修改
alterschema
语句,那么就没有
alterschema了postgre@Y.K.你是对的,这就是为什么我要问这个问题:如果存在,如何模拟
改变模式?我想已经有一些很好的答案了。。。