postgresql使用dblink跨库增删改查
warning:
这篇文章距离上次修改已过421天,其中的内容可能已经有所变动。
在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时要注意安全性问题,例如不要在连接字符串中直接包含敏感信息。
评论已关闭