即使扩展名已经存在,dblink 也不存在?
dblink does not exist even when the extension already exists?
所以我刚开始使用 dblink
,我刚刚创建了一个脚本,用于将数据从另一个数据库插入到 table 中。我收到错误 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,...)
检查扩展安装在哪个架构中。在我的例子中,这个模式是 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)
将架构名称添加到搜索路径中,例如:
set search_path to public, ext;
或使用函数的限定名称dblink()
,例如:
INSERT INTO tableA
SELECT tbl.colA,tbl.colB,...
FROM ext.dblink('dbname=anotherDB', 'SELECT colA,colB,...
FROM tableB')
as tbl(colA,colB,...)
所以我刚开始使用 dblink
,我刚刚创建了一个脚本,用于将数据从另一个数据库插入到 table 中。我收到错误 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,...)
检查扩展安装在哪个架构中。在我的例子中,这个模式是 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)
将架构名称添加到搜索路径中,例如:
set search_path to public, ext;
或使用函数的限定名称dblink()
,例如:
INSERT INTO tableA
SELECT tbl.colA,tbl.colB,...
FROM ext.dblink('dbname=anotherDB', 'SELECT colA,colB,...
FROM tableB')
as tbl(colA,colB,...)