Как я могу поймать событие новой записи postgreSQL с помощью golang - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть скрипт, который подключается к БД и может получать от него данные Можно ли как-то сделать так, чтобы я уведомлял, когда в таблицу БД добавляется какая-либо новая запись

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Спасибо всем за ответы

Решено это с помощью триггеров sql и библиотеки go-pg:

  1. Создана функция sql с именем insert_test_func, которая на 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 (функция) прослушивайте канал для «Сообщения»

0 голосов
/ 12 сентября 2018

Как указано в разделе комментариев, вы можете использовать функцию LISTEN / NOTIFY в Postgresql. С Golang Postgresql-Lib вы можете легко получать уведомления-события и реагировать на новые события базы данных. Вот простой пример реализации go: https://play.golang.org/p/hOsU89oC6fS я использовал в проекте.

...