即使扩展名已经存在,dblink也不存在?

Jos*_*ran 5 postgresql dblink insert

因此dblink,我刚开始使用,而是创建了一个脚本,该脚本将数据从另一个数据库插入表中。我收到了错误消息function dblink(unknown,unknown) does not exist

因此,我在线检查并使用CREATE EXTENSION dblink,最终得到此消息extension "dblink" already exists

我的dblink代码是这样的:

INSERT INTO tableA
 SELECT tbl.colA,tbl.colB,...
 FROM dblink('dbname=anotherDB', 'SELECT colA,colB,...
                 FROM tableB')
as tbl(colA,colB,...)
Run Code Online (Sandbox Code Playgroud)

kli*_*lin 6

签出扩展安装在哪个架构。就我而言,该架构为ext

select nspname as schema
from pg_extension e
join pg_namespace n on n.oid = e.extnamespace
where extname = 'dblink'

 schema 
--------
 ext
(1 row) 
Run Code Online (Sandbox Code Playgroud)

将架构名称添加到搜索路径,例如:

set search_path to public, ext;
Run Code Online (Sandbox Code Playgroud)

或使用函数的限定名称dblink(),例如:

INSERT INTO tableA
 SELECT tbl.colA,tbl.colB,...
 FROM ext.dblink('dbname=anotherDB', 'SELECT colA,colB,...
                 FROM tableB')
as tbl(colA,colB,...)
Run Code Online (Sandbox Code Playgroud)