On Thu, Apr 18, 2013 at 11:02 AM, Atri Sharma <atri.j...@gmail.com> wrote:
> > [...] > > One way I was thinking of was creating an updatable view, which is > initialized to NULL. As SELECT queries take place, I can update the > view to include the new rows. > > Why you just create your track function and a view to call it? Example: BEGIN; CREATE TABLE foo (id SERIAL PRIMARY KEY, data TEXT); CREATE TABLE foo_track(tracktime TIMESTAMP DEFAULT now(), foo_row foo); INSERT INTO foo (data) SELECT 'Some Data'||id FROM generate_series(1,10) AS id; CREATE OR REPLACE FUNCTION foo_track_func(foo) RETURNS integer AS $$ INSERT INTO foo_track(foo_row) VALUES ($1) RETURNING (foo_row).id $$ LANGUAGE sql; CREATE VIEW v_foo AS SELECT foo.*, foo_track_func(foo.*) FROM foo; SELECT * FROM v_foo; SELECT * FROM foo_track; COMMIT; Regards, -- Fabrízio de Royes Mello Consultoria/Coaching PostgreSQL >> Blog sobre TI: http://fabriziomello.blogspot.com >> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello >> Twitter: http://twitter.com/fabriziomello