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 } |
它肯定有效,但只在我目前连接的数据库上。
当然我可以重新连接到其他数据库并手动执行,但我感兴趣是否可以通过连接到另一个(通常是
我尝试过类似的东西:
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"; |