Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2009, 16:39
Avatar de [NiRVaNa]
[NiRVaNa]
 
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años, 7 meses
Puntos: 6
Pregunta Transactions dentro de triggers

Buenas gente...

Por primera vez estoy usando transacciones con la idea de que "se ejecute todo, o no se ejecute nada"... Y lo estoy queriendo implementar en un trigger que hace multiples inserts a diferentes tablas...

El tema es que no lo puedo hacer, a lo mejor es por un malentendido de conceptos o porque algo estoy haciendo mal.

Mi codigo es algo asi:
Código:
CREATE OR REPLACE FUNCTION asinarPersona()
  RETURNS "trigger" AS
$BODY$

BEGIN

IF (TG_OP = 'INSERT') THEN
     BEGIN; --Empiezo la transaccion
/*
MULTIPLES INSERTS
*/
COMMIT;
END IF;

return new ;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
El tema es que cuando quiero ejecutar el script, me sale que tngo un error de sintaxis en "BEGIN;", cuando comento esa linea, ejecuta sin problemas, pero al momento de invocar al trigger se produce un error por el "COMMIT;"

Alguna idea o sugerencia?

Muchas gracias...
__________________
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."