Postgres 的 "\connect" 命令的 JDBC 对应项是啥?

Posted

技术标签:

【中文标题】Postgres 的 "\\connect" 命令的 JDBC 对应项是啥?【英文标题】:What is JDBC counterpart of Postgres' "\connect" command?Postgres 的 "\connect" 命令的 JDBC 对应项是什么? 【发布时间】:2017-10-18 18:14:40 【问题描述】:

我正在尝试通过 JDBC 连接执行以下 Postgres 9.6 命令

CREATE USER my_db WITH SUPERUSER PASSWORD 'my_db';
CREATE DATABASE my_db;
GRANT ALL PRIVILEGES ON DATABASE my_db TO my_db;

\connect my_db; -- THIS ONE FAILS
SET ROLE my_db;

CREATE SCHEMA my_db AUTHORIZATION my_db;

"\connect" 命令因无法识别而失败。有没有办法连接其他数据库保持在同一个 JDBC 连接中?

UPD:“CONNECT TO ...”和“EXEC SQL CONNECT TO ...”也失败了。

【问题讨论】:

文档应该可以帮助你:Connecting to the DB over JDBC 你注意到我已经有 JDBC 连接了吗? 当您没有共享任何 JDBC / Java 代码时,我怎么会注意到这一点?我也不清楚你想在这里做什么。 拥有新的服务器和“postgres”超级用户,我想在这个新数据库中创建另一个数据库和模式,保持在同一个 JDBC 连接中。我知道可以使用两个后续的 JDBC 连接来做到这一点。但是,这不是我的选择 打开新连接是唯一的方法。 【参考方案1】:

反斜杠命令不是 PostgreSQL SQL 命令,它们是psql 命令行实用程序中的命令。在幕后,\connect 只是关闭连接并打开一个新连接。

PostgreSQL 本身没有任何方法在连接上切换数据库。

断开并重新连接到另一个数据库。

【讨论】:

以上是关于Postgres 的 "\connect" 命令的 JDBC 对应项是啥?的主要内容,如果未能解决你的问题,请参考以下文章

“用户未关联到提要!”续集

Kafka Connect 使用数组字段展平 postgres 记录的转换

如何通过 SQL 命令更改 Postgres 的 max_connections

使用debeziumkafka-connect将postgres数据实时同步到kafka中

connection.select_value 仅使用 pg gem 在 postgres 中返回字符串

postgres登录失败Connection refused与SSL off失败