Re: Undo an update

From: Kis János Tamás <kjt(at)takarnet(dot)hu>
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: Undo an update
Date: 2006-08-15 12:20:06
Message-ID: 200608151420.07062.kjt@takarnet.hu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

2006. August 11. Friday 19.26 dátummal Judith ezt írta:
>
> Is there a way to undo an update???
>

At the 1st time: I speak little english, so I sorry.
If I understand, what's your problem, maybe I can help you... Maybe...
So, if I'd like to save the inserted, deleted and/or updated rows,
then I create an extra table and some rows, triggers...

-- Function: generate_log_table()
CREATE OR REPLACE FUNCTION generate_log_table()
RETURNS "trigger" AS
$BODY$
DECLARE query text;
BEGIN
IF (TG_OP = 'INSERT') THEN query := 'INSERT INTO data_table
VALUES('||''''|| NEW.a ||''');';
ELSIF (TG_OP = 'UPDATE') THEN query := 'UPDATE data_table SET a = '
|| '''' || NEW.a || ''' WHERE id_table = '|| NEW.id_table ||';';
ELSIF (TG_OP = 'DELETE') THEN query := 'DELETE FROM data_table WHERE
id_table = '|| OLD.id_table ||';';
END IF;
INSERT INTO log_table (fecha, instruction) VALUES (now(), query);
RETURN NEW;
END
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

-- Table: data_table
CREATE TABLE data_table
(
a text,
id_table serial NOT NULL,
CONSTRAINT table_pkey PRIMARY KEY (id_table)
)
WITH OIDS;

-- Trigger: generate_log_table on data_table
CREATE TRIGGER generate_log_table
AFTER INSERT OR UPDATE OR DELETE
ON data_table
FOR EACH ROW
EXECUTE PROCEDURE generate_log_table();

-- Table: log_table
CREATE TABLE log_table
(
fecha timestamp,
instruction text,
id_table_log serial NOT NULL,
CONSTRAINT log_table_pkey PRIMARY KEY (id_table_log)
)
WITH OIDS;

So, if you send every insert, update, delete command to a
logger-table, then you can to undo anything.
I think...

Bye,
kjt

McAfee SCM 4.1 által ellenrizve!

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Andrew Sullivan 2006-08-15 13:18:20 Re: Multiple DB join
Previous Message Jorge Godoy 2006-08-15 12:01:03 Re: Multiple DB join