postgresql使用dblink跨库增删改查
在PostgreSQL中,使用dblink
模块可以进行跨数据库的增删改查操作。首先,确保你的数据库中已经安装并启用了dblink
扩展。
安装dblink
扩展:
CREATE EXTENSION dblink;
使用dblink
进行查询:
SELECT *
FROM dblink('dbname=otherdb port=5432 host=host.example.com user=myuser password=mypass',
'SELECT id, name FROM public.some_table')
AS t1(id integer, name text);
其中,otherdb
是远程数据库的名字,port
是远程数据库服务的端口,host.example.com
是远程数据库服务器的地址,myuser
和mypass
是用于连接远程数据库的凭据。
使用dblink
进行插入:
INSERT INTO local_table
SELECT *
FROM dblink('dbname=otherdb port=5432 host=host.example.com user=myuser password=mypass',
'SELECT id, name FROM public.some_table')
AS t1(id integer, name text);
使用dblink
进行更新:
UPDATE local_table
SET local_column = dblink_exec('dbname=otherdb port=5432 host=host.example.com user=myuser password=mypass',
'SELECT some_function(id) FROM public.some_table WHERE id = $1',
local_table.id::text)::int
FROM local_table
JOIN remote_table ON local_table.id = remote_table.id;
使用dblink
进行删除:
DELETE FROM local_table
WHERE id IN (
SELECT id
FROM dblink('dbname=otherdb port=5432 host=host.example.com user=myuser password=mypass',
'SELECT id FROM public.some_table WHERE condition')
AS t1(id integer)
);
请确保你有足够的权限来连接远程数据库,并且在使用dblink
时要注意安全性问题,例如不要在连接字符串中直接包含敏感信息。
评论已关闭