我想要你在另一个数据库里的桌子。
为此,我使用dblink。
过程
步骤1:创建扩展。
CREATE EXTENSION dblink;步骤2:生成dblink连接字符串。
select dblink_connect('con','host=127.0.0.1 dbname=makdb user=postgres password=postgres');第3步:
select * from dblink('con','select cola,colb from tbl_test') as tbl(cola int,colb varchar(10));我的问题:如何在步骤2中隐藏密码?
通过搜索,我了解到我需要创建.pgpass文件。但是在如何创建和在哪个步骤中我需要使用那个文件名的问题上陷入了困境。
发布于 2020-03-09 14:52:42
安装dblink扩展:
CREATE EXTENSION dblink;安装postgres_fdw扩展(可用于访问存储在外部PostgreSQL服务器中的数据):
CREATE EXTENSION postgres_fdw;创建新的外部服务器连接:
CREATE server myserver foreign data wrapper postgres_fdw
OPTIONS (dbname 'foreign_dbname', host 'foreign_host');为最近创建的外部服务器连接和数据库创建用户映射。
CREATE USER MAPPING FOR "user_in_current_database"
SERVER myserver OPTIONS (user 'foreign_user', password 'foreign_password');选择远程数据库中的某些字段,并创建conexion。注意,您不需要更多地使用用户和密码。
SELECT tmp_table.*
FROM dblink(
'myserver',
'
SELECT field1,
field2
FROM table
'
)
AS tmp_table(
field1 TEXT,
field2 BIGINT
);更多信息:
https://www.postgresql.org/docs/9.5/postgres-fdw.html
https://www.postgresql.org/docs/current/sql-createserver.html
https://www.postgresql.org/docs/current/sql-createusermapping.html
https://stackoverflow.com/questions/41486198
复制相似问题