必须执行的查询简单如下 -
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的整行
另外,如果我必须在更新查询中与当前数据库表进行连接,该怎么办?
答案 0 :(得分:1)
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
<强>更新强>
for dblink you&#34; wrap&#34; qry并发送它。这是加入&#34;的唯一途径。包装查询是DO
块中的动态SQL。哪个会很难看。创建FOREIGN TABLE
的Concider - 它将允许您轻松地从本地表更新
更新两个
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
所以你创建服务器,映射用户并创建一个外表。
完成更新后,就好像是本地的
答案 1 :(得分:0)
这对我有用。
0