gpt4 book ai didi

sql - 如何使用 postgres dblink 更新另一个数据库中的表?

转载 作者:行者123 更新时间:2023-11-29 13:21:36 26 4
gpt4 key购买 nike

必须执行的查询很简单——

Update employee set is_done=true; 

我要更新的表只存在于另一个数据库中。

我一直在使用这些类型的 dblink 查询。

INSERT Into mytable select * from 
dblink('host=10.1.1.1
user=user
password=password
dbname=oat', 'SELECT * from employee') tt(
user_id integer,
is_done boolean

) on conflict(user_id) do nothing;

如何更新另一个数据库中员工表的字段?

我也想知道我们是否可以以类似的方式实现删除 - 删除给定 id 的整行

此外,如果我必须在更新查询中与当前数据库表进行连接怎么办?

最佳答案

SELECT dblink_connect('host=10.1.1.1
user=user
password=password
dbname=oat');

SELECT dblink_exec('Update employee set is_done=true');

而且我建议您也使用 FDW,特别是如果您使用的是 9.6

更新

对于 dblink,您“包装”qry 并发送它。所以“加入”包装查询的唯一方法是 DO block 中的动态 SQL。这将是非常丑陋的。考虑创建 FOREIGN TABLE - 它将允许您轻松地从本地表更新

更新二

https://www.postgresql.org/docs/current/static/sql-createserver.html https://www.postgresql.org/docs/current/static/sql-createusermapping.html https://www.postgresql.org/docs/current/static/sql-createforeigntable.html

因此您创建服务器、映射用户并创建外部表。

完成后像本地一样更新

关于sql - 如何使用 postgres dblink 更新另一个数据库中的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40674461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com