如何修改PostgreSQL中通过dblink创建的数据库连接名?
解决PostgreSQL dblink命名连接重命名问题
你遇到的问题核心是:dblink_connect创建的是会话级临时命名连接,这类连接不属于数据库持久化对象,PostgreSQL没有直接的重命名命令,而ALTER DATABASE LINK是针对另一类兼容Oracle的db_link扩展对象的语法,和你当前的连接不匹配,所以报错。
以下是可行的处理方式:
方法一:重新创建连接并关闭旧连接
这是最直接的方案,步骤如下:- 查看当前会话的所有dblink连接,确认旧连接存在:
SELECT dblink_get_connections(); - 用新名称创建相同目标的连接:
SELECT dblink_connect('new_name', 'server_target'); - 关闭旧的命名连接:
SELECT dblink_disconnect('conn_db_link');
- 查看当前会话的所有dblink连接,确认旧连接存在:
补充说明
dblink的会话级命名连接仅存在于当前会话中,当会话结束后会自动销毁。如果你的旧连接没有正在运行的事务或未完成的操作,直接重新创建是最高效的方式。
内容的提问来源于stack exchange,提问作者user2771708
相关产品推荐
相关产品推荐

