Achilleus Mantzios wrote: > > On Wed, 5 Feb 2003, Neal Lindsay wrote: > > > I have a table that I want to keep track of the user who last modified > > it and the timestamp of the modification. Should I use a trigger or a rule? > > > > CREATE TABLE stampedtable ( > > stampedtableid SERIAL PRIMARY KEY, > > updatestamp timestamp NOT NULL DEFAULT now(), > > updateuser name NOT NULL DEFAULT current_user, > > sometext text > > ); > > > > I suspect that I want a rule, but all the examples in the documentation > > seem to update a separate table and not override (or add) the > > insert/update to the timestamp and name columns. > > You may want to use rules if you need rewriting. > What you actually need is some sort of driver to a specific table. > You could create a view to that table (to hide the accounting columns), > and then create rules on that view that do the job as you wish.
I'm sure you want to use a BEFORE INSERT OR UPDATE trigger that modifies NEW.updatestamp in place just before the row get's written. A rule will not work here because rules cannot cause the same action on the same table they are called for. Jan -- #======================================================================# # It's easier to get forgiveness for being wrong than for being right. # # Let's break this rule - forgive me. # #================================================== [EMAIL PROTECTED] # ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])