PostgreSQL无需psql的\connect创建多数据库及对应Schema方法咨询
结论
你无法以管理员身份单次登录就一次性完成全部操作,必须先以管理员身份创建所有数据库,再分别连接每个数据库创建对应Schema。
原因说明
- PostgreSQL中Schema属于数据库内部的隔离对象,单个数据库会话同一时间只能绑定一个数据库,没有原生SQL语法支持在连接A库的会话中直接为B库创建Schema。
- 你要求不使用psql的
\connect命令、不借助psql工具的前提下,只能通过多会话的方式完成操作,流程如下:- 第一个管理员连接连接到默认库(如
postgres库),批量创建所有需要的数据库:
CREATE DATABASE test0; CREATE DATABASE test1;- 分别为每个新建的数据库建立独立的管理员连接,在对应连接下执行Schema创建语句:
-- 连接test0的会话中执行 CREATE SCHEMA s0;-- 连接test1的会话中执行 CREATE SCHEMA s1; - 第一个管理员连接连接到默认库(如
补充说明
如果是通过程序脚本自动化执行,你可以在脚本逻辑中实现多连接切换,不需要人工手动操作,也不需要在SQL语句中写连接命令,符合你的使用约束。
内容的提问来源于stack exchange,提问作者Thomas
相关产品推荐
相关产品推荐

