Reputation: 573
I have a PostgreSQL database. What I want to do is, detect any changes (insert, update) that happen in the database and then call a webservice. How could I do this?
Thanks in advance for any help.
Upvotes: 43
Views: 33880
Reputation: 16349
You should be able to use triggers and the listen/notify functionality in PostgreSQL to achieve something like this:
A set of insert/update/delete triggers create a notification event whenever anything changes in your table, using the created/changed/deleted ID as the payload.
A background process checks for notifications periodically (here's an example using Java/JDBC), and then loads the changed record from the database to do the web service call.
This is not in any way a real-time push-type system, but you have to poll the database for notification events to trigger the webservice call. It will do the trick, though.
Upvotes: 27