关于sql:是否可以更改我未连接的数据库的模式?

Is it possible to alter schema of a database I am not connected to?

是否可以更改我未连接的数据库的架构? 更具体地说,我需要更改模式的所有者(但问题并不重要)。

正如文档所说,schemata可以使用如下的子句进行更改:

1
ALTER SCHEMA name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

它肯定有效,但只在我目前连接的数据库上。

当然我可以重新连接到其他数据库并手动执行,但我感兴趣是否可以通过连接到另一个(通常是postgres)数据库。 这对自动化过程非常有帮助。

我尝试过类似的东西:

1
2
ALTER DATABASE ALTER SCHEMA name OWNER TO ...
ALTER SCHEMA"db_name".name OWNER TO ...

但没有成功 - 所以我感兴趣是否有可能。

我尝试使用一个流行的搜索引擎和StackOverflow搜索功能搜索此信息。 不成功 - 因此问题。


由于@a_horse_with_no_name和@JacobH在注释中指出,因此无法更改当前未连接的数据库的模式。

所以我最终使用这样的命令来实现模式更改:

1
psql $PG_DATABASE -c"ALTER SCHEMA "<schema-name>" OWNER TO $PG_USER";