Buenos dias.
 
A todos los foreros.
 
Miren les comento lo siguiente:
 
Tengo dos tablas una se llama cuentas y la otra se llama historial (campos: idusurio,idcliente,accion).
 
Lo que quiero hacer es que me diante un trigger al momento que se inserte o elimine, automaticamente se inserte en la tabla de historial.
 
 Ya he hecho el script del la funcion y del trigger pero al momento de insertar en la tabla cuentas me manda un error en la funcion, y por lo que tampoco deja insertar en la tabla cuentas; aqui les dejo el error que me manda:
 
 ERROR: no existe la columna <<DELETE>>
LINEA 1: SELECT $1 = "DELETE"
                                  ^
CONSULTA: SELECT $1 = "DELETE"
CONTEXTO: PL/pgSQL function "respaldo_cuentas" line 3 at IF
 
 
Y este es el codigo de la funcion y del trigger:
 
CREATE FUNCTION respaldo_cuentas()
RETURNS TRIGGER AS
' DECLARE mi_evento varchar;
BEGIN
  IF TG_OP = "DELETE" THEN
      mi_evento:="elimino";
   ELSEIF TG_OP = "INSERT" THEN
      mi_evento:="inserto";
   END IF;
   INSERT INTO historial VALUES (now(), old.idusuario,old.idcliente, mi_evento);
   RETURNS null;
END;' LANGUAGE plpgsql;
 
CREATE TRIGGER backup_cuentas
AFTER delete or insert
on cuentas 
for each row execute procedure respaldo_cuentas();
 
 
De antemano les agradesco la ayuda.
 
Saludos!!!!!! 
   
 




