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 originalCREATE OR REPLACE FUNCTION nueva_caja_chica(fecha_entrada DATE, porcentaje INTEGER, pct_caja_chica DOUBLE PRECISION, iddeposito INTEGER, clave CHARACTER)
RETURNS void AS
$BODY$insert INTO concepto (fecha,pct_asignado,cantidad,id_deposito,id_clave)
VALUES(fecha_entrada,porcentaje,pct_caja_chica,iddeposito,clave);$BODY$
LANGUAGE SQL
y de esta otra:
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION obtener_info_conceptos(IN ids INTEGER, OUT out_pct_asignado INTEGER, OUT out_cantidad DOUBLE PRECISION, OUT out_id_clave CHARACTER)
RETURNS SETOF record AS
$BODY$
DECLARE
datos record;
BEGIN
FOR datos IN SELECT pct_asignado, cantidad, id_clave FROM concepto WHERE id_deposito=ids loop
out_pct_asignado=datos.pct_asignado;
out_cantidad=datos.cantidad;
out_id_clave=datos.id_clave;
RETURN NEXT;
END loop;
RETURN;
END;
$BODY$
LANGUAGE plpgsql
Mi pregunta es que, ¿si al ejecutar esto, ya tienen dichos ROLLBACK's de forma implicita o tengo yo que definirlos separadamente?