【发布时间】:2009-05-01 16:58:05
【问题描述】:
我不太熟悉数据库以及它们在 CRUD 操作之外提供的功能。
我的研究使我找到了触发因素。基本上看起来触发器提供了这种类型的功能:
(来自Wikipedia)
通常有三个触发事件会导致触发器“触发”:
- INSERT 事件(新记录被插入到数据库中)。
- UPDATE 事件(因为正在更改记录)。
- DELETE 事件(因为正在删除记录)。
我的问题是:当使用某种触发器语义更新/删除/插入记录时,数据库是否可以通过某种方式在 Java 中通知我(最好包括更改的数据)?
对于这个问题有什么替代解决方案?如何监听数据库事件?
我想这样做的主要原因是这样的场景:
我有 5 个客户端应用程序,它们都在不同的进程中/存在于不同的 PC 上。它们都共享一个公共数据库(在本例中为 Postgres)。
假设一个客户更改了所有 5 个客户都“感兴趣”的数据库中的一条记录。我正在尝试想办法让客户“通知”更改(最好附上受影响的数据) 而不是他们每隔一段时间查询数据。
【问题讨论】:
-
我很想知道您为什么要这样做;你确定要这样做吗?
-
为什么要删除之前的问题? (stackoverflow.com/questions/809793 10 人)
-
因为它是 postgres 特定的并且没有得到响应。
标签: java database database-design events triggers