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
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" |