Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/12/2007, 05:59
albertoshu
 
Fecha de Ingreso: agosto-2007
Mensajes: 237
Antigüedad: 16 años, 9 meses
Puntos: 1
¿Qué pasa si ejecuto un ROLLBACK sin que haya ninguna transaccion iniciada?

Hola a todos,

Una dudilla sobre transacciones. Tengo el siguiente codigo:


Código PHP:
1BEGIN;
2INSERT en bbddSi falla ROLLBACK;
3. otro_acceso_a_la_bbdd();
4COMMIT;

5: function otro_acceso_a_la_bbdd(){
6:   INSERT en bbdd;Si falla ROLLBACK;
7: } 

Si se ejecuta el insert de la linea 2, entonces obligatoriametne se tiene que ejecutar el insert de la linea 6 y por eso incluyo estos dos insert dentro de la transacción delimintada por la lines 1 y 4.

El tema es que la funcion otro_acceso_a_la_bbdd() también puede ser invocada desde otra parte del código y, posiblemente, sin estar dentro de una transaccion. En tal caso, si fallara el insert de la linea 6 se ejecutaría un Rollback sin que se hubiera iniciado ninguna transaccion....

Hay algún problema por esto?

Un saludo a todos y gracias por adelantado.