如何使用golang捕获新的postgreSQL记录事件

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

我有一个连接到DB的脚本,可以从中获取数据当任何新记录添加到数据库表时,我可以以某种方式通知我

sql postgresql go notifications pg
2个回答
1
投票

在评论部分中,您可以使用Postgresql的LISTEN / NOTIFY功能。使用Golang的Postgresql-Lib,您可以轻松获取通知事件并对新的数据库事件做出反应。这是一个简单的go实现示例:我在项目中使用的https://play.golang.org/p/hOsU89oC6fS


0
投票

感谢大家的答案

使用sql触发器和go-pg库解决了这个问题:

  1. 创建了一个名为insert_test_func的sql函数,即INSERT(在我的情况下)动作 PERFORM pg_notify('mychan', 'Message');
  2. 创建触发器,执行func create trigger check_insert before insert or update on *my_table_name* for each row execute procedure insert_test_func(); 并执行此触发器
  3. 使用“github.com/go-pg/pg”,连接到数据库并使用pg.Listen(函数)监听“消息”的频道
© www.soinside.com 2019 - 2024. All rights reserved.