Como seguramente sabes, en Firebird el correcto entendimiento de las transacciones es extremadamente importante y si no las entiendes bien el resultado será predecible: harás mal tus tareas.

No hay alternativa.

O entiendes como funcionan las transacciones en Firebird o no entiendes. Y si no entiendes, tendrás problemas.

Así que aquí hay un pequeño examen para que puedas autoevaluarte y verificar si entiendes o no como funcionan las transacciones en Firebird.

Pregunta 1. Una transacción realizó tres inserciones. El tercer INSERT elevó una excepción. ¿Es posible finalizar esa transacción con un COMMIT exitoso?

[Sí]   [No]

Pregunta 2. La tabla MiTabla tiene 10 filas. Simultáneamente 3 transacciones se iniciaron y cada transacción insertó una fila en MiTabla. En la tercera transacción se escribió:

Listado 1.

SELECT
   COUNT(*)
FROM
   MiTabla

¿Cuál será el resultado mostrado?

[10]    [11]    [12]    [13]

Pregunta 3. Tenemos un generador cuyo nombre es MiGenerador y su valor es 10. Dos transacciones, T1 y T2, se están ejecutando simultáneamente. En la transacción T1 ejecutamos: GEN_ID(MiGenerador, 1) y en la transacción T2 ejecutamos: GEN_ID(MiGenerador, 1)

La transacción T1 finalizó con un COMMIT y la transacción T2 finalizó con un ROLLBACK. ¿Cuál es el valor de MiGenerador después de eso?

[10]    [11]    [12]

Artículos relacionados:

Entendiendo a las transacciones

El índice del blog Firebird21

El foro del blog Firebird21

Anuncios