Re: capturing and storing query statement with rules
Joe Conway <mail@joeconway.com>
From: Joe Conway <mail@joeconway.com>
To: Guillaume LELARGE <gleu@wanadoo.fr>
Cc: pgsql-general@postgresql.org, Andrew Gould <andrewgould@yahoo.com>
Date: 2003-06-24T20:53:20Z
Lists: pgsql-hackers, pgsql-general
Guillaume LELARGE wrote: > Le Mardi 24 Juin 2003 20:17, Andrew Gould a écrit : >>I would like to create a audit log of update and >>delete queries against a table. I want the log on the >>server side, since access will be done using various >>clients via ODBC. I would like to capture the user, >>current datetime and the query statement. My thought >>was to accomplish this by creating a rule that will >>insert the information into a log table. > > To be server side, you need to use a trigger and a plpgsql function. On this > page you will find more informations on trigger related functions: > http://www.postgresql.org/docs/view.php?version=7.3&idoc=0&file=plpgsql-trigger.html > Perhaps you can compare OLD and NEW rows to know which rows will be updated. > And you'll find at the end of the page how to get current user (current_user > keyword) and current datetime (function now). > >>How can I captures the query statement so that I can >>place it in a insert query? Is there a variable in >>the server that holds the query statement as a string? I think this shows how to do what you want: http://archives.postgresql.org/pgsql-sql/2003-05/msg00301.php HTH, Joe