Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2010, 10:41
Avatar de Huacho12
Huacho12
 
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 16 años, 2 meses
Puntos: 10
Error en el Trigger!!!!

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