Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/03/2014, 21:31
bibliotecario_oscuro
 
Fecha de Ingreso: enero-2014
Mensajes: 100
Antigüedad: 10 años, 9 meses
Puntos: 0
Información rollback en funciones y procedimientos

saludos amigos, recientemente lei en la web que el rollback ya viene implicito en funciones y procedimientos de postgres ¿que de cierto hay en esto?. Entiendo que, un rollback es cuando ejecutamos en una transaccion una serie de sentencias y operaciones y que, si alguna de estas falla por algun motivo se ejecuta un rollback que no es otra cosa mas que el regresar la base de datos a su estado original, antes de que se hubiese ejecutado dicha transaccion. por ejemplo, yo en postgres manejo funciones y procedimientos de la siguiente manera:

Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION nueva_caja_chica(fecha_entrada DATE, porcentaje INTEGER, pct_caja_chica DOUBLE PRECISION, iddeposito INTEGER, clave CHARACTER)
  2.   RETURNS void AS
  3. $BODY$insert INTO concepto (fecha,pct_asignado,cantidad,id_deposito,id_clave)
  4.   VALUES(fecha_entrada,porcentaje,pct_caja_chica,iddeposito,clave);$BODY$
  5.   LANGUAGE SQL

y de esta otra:
Código SQL:
Ver original
  1. CREATE OR REPLACE FUNCTION obtener_info_conceptos(IN ids INTEGER, OUT out_pct_asignado INTEGER, OUT out_cantidad DOUBLE PRECISION, OUT out_id_clave CHARACTER)
  2.   RETURNS SETOF record AS
  3. $BODY$
  4. DECLARE
  5. datos record;  
  6.    BEGIN
  7.       FOR datos IN SELECT pct_asignado, cantidad, id_clave FROM concepto WHERE id_deposito=ids loop
  8.          out_pct_asignado=datos.pct_asignado;
  9.          out_cantidad=datos.cantidad;
  10.          out_id_clave=datos.id_clave;
  11.          RETURN NEXT;
  12.       END loop;
  13.       RETURN;
  14.    END;
  15.  $BODY$
  16.   LANGUAGE plpgsql
  17.  
  18. Mi pregunta es que, ¿si al ejecutar esto, ya tienen dichos ROLLBACK's de forma implicita o tengo yo que definirlos separadamente?
__________________
"Benditos sean todos los libros, pues cuando abres uno, te sumerges en un mundo nuevo y completamente diferente"