c++ - 如何在 PostgreSQL 中创建插入、删除或更新命令的信号并在 C++ 中处理它们?

标签 c++ postgresql notifications

当 PostgreSQL 中有插入、删除或更新命令时,我正在尝试找到数据库通知的最佳方式。

我的目标是在数据库发生变化时立即处理它们。

我该怎么做?

最佳答案

我在 Qt 中找到了一个很好的方法。

首先,您需要创建规则来通知您更新已发生:

CREATE RULE table_notification_insert AS ON INSERT TO public.table DO NOTIFY table_inserted;
CREATE RULE table_notification_update AS ON UPDATE TO public.table DO NOTIFY table_updated;
CREATE RULE table_notification_delete AS ON DELETE TO public.table DO NOTIFY table_deleted;

然后,您可以使用 Qt 接收每个通知(“table_inserted”、“table_updated”、“table_deleted”),如下所示:

QSqlDatabase::database().driver()->subscribeToNotification("table_inserted");
QObject::connect(QSqlDatabase::database().driver(), SIGNAL(notification(const QString&)), /*handlerObjectPointer*/, SLOT(handleNotificationFunction(const QString&)));

这是我找到的部分答案: forum.qt.io

关于c++ - 如何在 PostgreSQL 中创建插入、删除或更新命令的信号并在 C++ 中处理它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44545727/

相关文章:

java - org.apache.axis2.AxisFault 连接被拒绝

java - 如何更改通知的内容而不重新创建它?

c++ - Visual Studio 编译并检测操作符重载,而 g++ 则不然

sql - PostgreSQL 多列索引连接与比较 ("<"和 ">") 运算符

C++ 控制台键盘事件

linux - 在文件的每一行末尾插入 PostgreSQL "select"的结果

android - 如何在 Cordova 平台中实现推送通知?

ios - 静默通知与后台获取

c++ - 在 Mac OS X 上模拟鼠标点击对某些应用程序不起作用

c++ - 实时与 CPU 时间性能测量