首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bucardo自定义复制逻辑

Bucardo自定义复制逻辑
EN

Stack Overflow用户
提问于 2016-06-22 23:59:57
回答 1查看 225关注 0票数 0

关于Postgre SQL中的Bucardo功能,我有一个问题。Bucardo在几个数据库之间放置同步表。假设我们有DB1和DB2格式的表订单。

代码语言:javascript
复制
create table orders(order_id integer primary key, item_id integer, quantity integer); 

我们正在对DB1中的Orders表进行更改。

代码语言:javascript
复制
insert into orders(item_id,quantity) values(1,235);

然后,Bucardo将所有这些更改复制到DB2中的Orders表。但除了这个同步,我想布卡多在DB2中修改表股票

代码语言:javascript
复制
create table stock(item_id integer primary key, name varchar(50), quantity integer);

对于item_id = 1的记录,将DB2中stock表的数量字段减去235 (即插入到DB1中orders表的数量字段中的值),这样可以自定义Bucardo吗?实现此功能的最佳方式是什么?

EN

回答 1

Stack Overflow用户

发布于 2016-07-26 23:38:17

这将很难实现,因为bucardo不会基于SQL语句进行复制。但是,您可以在主服务器DB1上使用存储过程,也可以复制该表。

代码语言:javascript
复制
create or replace function stock_func() returns trigger as $$
DECLARE
    val int;
BEGIN
    val := NEW.quantity #do you addition or subtraction here
    #add your update statement below 
    execute 'UPDATE stock set .....;
    return NULL;
END;
$$ language plpgsql;

 create trigger update_stock before insert on address for each row execute procedure stock_func();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37973091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档