Ayuda con trigger.

From: Pablo Braulio <brulics(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda con trigger.
Date: 2005-12-23 07:43:47
Message-ID: 200512230843.47777.brulics@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos.

Estoy tratando de crar un trigger de auditoría y me muestra un error.

Esto es debido a mi inexperiencia con funciones y triggers, por lo que
agradecería me prestarais una ayudita.

Tengo creada esta tabla:

create table auditoria(
id integer,
usuario name not null,
fecha date not null,
hora time not null,
accion text not null,
descripcion not null);

Y la siguiente función y trigger que debería auditar.

create or replace function proc_auditoria() returns trigger as '
begin
if (tg_op = "DELETE") then
insert into auditoria select current_user, current_date, current_time,
"DELETE", old.*;
RETURN OLD;
ELSEIF (TG_OP = "UPDATE") THEN
INSERT INTO auditoria SELECT current_user, current_date, current_time,
"UPDATE", NEW.*;
RETURN NEW;
ELSEIF (TG_OP = "INSERT") THEN
INSERT INTO auditoria SELECT current_user, current_date, current_time,
"INSERT", NEW.*;
RETURN NEW;
END IF;
RETURN NULL;
END;
'language 'plpgsql';

CREATE TRIGGER insert_auditoria AFTER INSERT OR UPDATE OR DELETE ON ficheros
FOR EACH ROW EXECUTE PROCEDURE proc_auditoria();

Bueno, pues al intentar hacer algo sobre la tabla ficheros me muestra lo
siguiente:

Query failed: ERROR: no existe la columna «DELETE» CONTEXT: sentencia SQL:
«SELECT ( $1 = "DELETE")» PL/pgSQL function "proc_auditoria" line 2

Espero que alguién me pueda ayudar.

Gracias a todos.
--
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jose María Mencía 2005-12-23 08:05:09 Re: Ayuda con trigger.
Previous Message Jaime Casanova 2005-12-23 06:47:13 Re: Ayuda con "DISTINCT ON"