-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
> I am trying to find a way to stamp all of the rows affected by
> an update (or insert) with a unique value. For example, consider
> the following table:
...
> At first I tried to do this as a trigger function.
You were on the right path:
ALTER TABLE people ADD mtime TIMESTAMPTZ NOT NULL DEFAULT now();
CREATE OR REPLACE FUNCTION update_mtime() RETURNS TRIGGER LANGUAGE PLPGSQL AS
'BEGIN NEW.mtime = now(); RETURN NEW; END;';
CREATE TRIGGER people_update_mtime BEFORE UPDATE ON people
FOR EACH ROW EXECUTE PROCEDURE update_mtime();
(I use a version of this for my incremental backup scheme)
Now every update (or insert) will cause all the rows changed to have the
same unique value. Unless you mess with your system clock. :) As a nice bonus,
you also get to see *when* each row was modified.
- --
Greg Sabino Mullane greg(at)turnstep(dot)com
PGP Key: 0x14964AC8 200411222111
-----BEGIN PGP SIGNATURE-----
iD8DBQFBop11vJuQZxSWSsgRAuioAKDoVJjASMy0IYQ/T8mO76GEJKQdHQCg2KY7
13ul0+pLO+vEBEjGorUYiIA=
=rQnL
-----END PGP SIGNATURE-----