如何在postgresql中把行复制到不同数据库的不同表中?

问题描述 投票:0回答:1

我使用postgresql。我有许多数据库在一个服务器上。有一个数据库,我使用最多的是'main'。这个'main'里面有很多表。而其他数据库也有很多表在里面。

我想做的是,每当有一条新的记录插入'main.users'表中,我希望把同样的数据插入到其他数据库的'users'表中。在postgresql中我应该如何做呢?同样的,我希望对所有的操作,如UPDATE,DELETE等也做同样的操作。

我已经经历了你所建议的 "逻辑复制 "概念。在我的情况下,我知道源数据库的名称在前面,我将知道目标数据库的名称作为查询的一部分。所以这将是动态的。

在postgresql中是否有任何db的概念?或者我欢迎所有其他可能的方法,以及。请给我分享一些关于这个的想法。

postgresql postgresql-9.5
1个回答
0
投票

升级到最近的PostgreSQL版本,使用逻辑复制。


0
投票

如果这一切都在同一个Postgres实例上(也就是 "集群"),那么我建议使用一个 外表 来访问其他数据库中 "主 "数据库中的表,这些外表看起来就像每个数据库内部的 "本地 "表,但却直接访问源数据库中的原始数据,所以不需要同步什么。

这些外表看起来就像每个数据库里面的 "本地 "表,但是直接访问源数据库中的原始数据,所以不需要同步任何东西。


0
投票

在主数据库的表上添加一个触发器,使用dblink来访问和写入其他数据库。

一定要考虑如果该行已经远程存在,或者rome服务器无法访问,应该怎么办。

另外,如果inboking事务被回滚,使用dblink传播的更新也不会被回滚。

© www.soinside.com 2019 - 2024. All rights reserved.