在两个 postgres 数据库表之间同步数据
Posted
技术标签:
【中文标题】在两个 postgres 数据库表之间同步数据【英文标题】:sync data between two postgres database tables 【发布时间】:2019-07-03 15:30:04 【问题描述】:我有一个 db1 表 A 和一个 db2 表 B 我只想将表 A 中不存在的行插入表 B,如果表 B 中已经存在数据,请更新它。 执行此操作的最佳方法是什么?我有数百行要插入和更新以及许多表。我正在使用 dbvisualizer。 谢谢。
【问题讨论】:
请提供样本数据和期望的结果。 “已经存在”是什么意思? 【参考方案1】:一种方法使用not exists
子查询。像这样的:
insert into b (col1, . . . )
select col1, . . .
from a
where not exists (select 1 from b where b.? = a.?);
还有其他方法。如果您在b
上有一个定义唯一性的unique
约束/索引,那么您可能需要一个on conflict
子句。如果您试图防止重复,那么 unique
约束/索引是正确的解决方案。
【讨论】:
以上是关于在两个 postgres 数据库表之间同步数据的主要内容,如果未能解决你的问题,请参考以下文章