postgresql triggers to update GUI?

Thys Meintjes thys at
Tue Nov 27 09:46:33 CET 2001

Use the PostgreSQL LISTEN, NOTIFY commands, 

Add a rule to the table that you want notifications on, something like this:
   file   INT,
   line   INT,
   type   CHAR(10),

CREATE RULE wmanlogupdate AS
ON INSERT TO wmanlog
  NOTIFY wmanlogentry;"""

Check for NOTIFY 'events' by doing a 
query = """LISTEN wmanlogentry""" either from a thread, which in turn can 
raize a 'real' event or a timer, I use wxWindows's wxTimer to poll and 
PyGreSQL's getnotify() method to determine the type of notification 
(wmanlogentry) if any. 


On Monday 26 November 2001 10:49 pm, Brian E Gallew wrote:
> "Robert Nikander" <nikander at> wrote ...
> > I am writing a python program that uses a postgresql db backend.  I
> would
> > like to update the gui whenever a change in certain tables occurs, so
> it
> > would be nice to use triggers rather than generating the 'events' when
> I
> > update the db.  That way I get cascading changes.  Does anyone know of
> a
> > python module that supports postresql triggers? ie: you can create a
> > trigger that calls a python function?  Is there another solution here
> > that I am missing?
> What you are looking for are asynchronous requests.  Basically, you
> make an async request, then in your GUI mainloop you peridically check
> to see if you got any results (updating the GUI if necessary).  There
> is no way to make a database trigger talk to your GUI UNLESS you are
> willing to open up a socket in the GUI, listen/process requests on it
> and have your database trigger write to that socket (don't forget to
> have error handling in there so that it doesn't crash when there's no
> one listening).

More information about the Python-list mailing list