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

How can I catch an event of a new postgreSQL record with golang

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

您可以使用 Postgresql 的 LISTEN/NOTIFY 功能。

使用 "github.com/lib/pq",您可以轻松获取通知事件并对新的数据库事件做出反应。

这是 Go 实现的 example

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

  1. 创建名为 insert_test_func 的 sql 函数,在 INSERT 上执行:

    PERFORM pg_notify('mychan', 'Message');
    
  2. 创建触发器,执行函数:

    create trigger check_insert 
    before insert or update on *my_table_name*
    for each row 
    execute procedure insert_test_func();
    
  3. 执行这个触发器

  4. 使用 github.com/go-pg/pg 连接到数据库,使用 pg.Listen() 收听 'Message'.

  5. 的频道