Hola qué tal bienvenidos a este nuevo capítulo del curso completo de base de datos y en esta oportunidad
vamos a hacer un pequeño capítulo cortito porque es muy fácil y vamos a hablar de las transacciones
qué son las transacciones.
Cuando nacieron las transacciones en qué momento se les ocurrió a alguien generar esto llamado transacciones.
Imagínense este escenario ustedes tienen que grabar una factura en su equipo y tienen que alimentar
una tabla la tabla ventas la tabla detalle de ventas.
Quizás en ese momento tengan que actualizar algún dato de la tabla de clientes como algún saldo disponible
del cliente para futuras compras.
Tienen que dar de baja el stock de los productos tienen que hacer una serie de operaciones para una
sola operación que es la venta de una factura muy bien supongamos que sin transacciones ustedes hagan
estas operaciones una debajo de la otra y en la mitad ocurre un error o se quedan sin corriente eléctrica
o hay un error en el motor de la base de datos algo que corta por la mitad la cadena de operaciones
SQL.
Imagínense el problema enorme que van a tener porque van a tener algunas cosas grabadas algunas cosas
actualizadas y otras cosas que no llegaron a actualizarse.
Esto es algo muy difícil de solucionar en el mundo real y lo que han inventado hace unos años es el
concepto de transacciones.
Las transacciones le permiten marcar al motor de base de datos un comienzo de operación y un final de
Operación y nos permite a nosotros los desarrolladores que si en el medio detectamos una falla o una
operación que no se realizó podemos echar atrás todos los cambios que se hicieron previamente.
Esto sería algo así se lo voy a escribir en pantalla al menos en mi ciclo se maneja de esta manera.
Primero tenemos un comienzo de transacción aquí va a haber n operaciones sentencias SQL inserciones
actualizaciones y hasta borrado de datos.
Una vez que nosotros hemos llegado al final y hemos detectado que todo fue correctamente vamos a realizar
un envío al motor de la base de datos de una instrucción llamada commit
transaction.
Esto le dice en algunos motores es commit a secas y en otros es commit transaction.
Yo podría obviarlo y dejar directamente commit.
Esto le dice al motor de base de datos que todos los cambios que se hicieron desde el comienzo de transacción
se tienen que efectivizar en las tablas.
Una vez que yo doy komi no hay vuelta atrás.
No tengo manera de revertir los cambios.
Supongamos que en el medio aquí cuando está grabando y terminó de grabar la tercera operación se detecta
un error algo que no está bien.
Algo que falló y que me dio una inconsistencia en el motor de base de datos y nosotros podemos decirle
al motor que vuelva atrás todo lo que modificó desde el comienzo de las transacciones.
Cómo se hace se hace con un rol back.
Esta es la instrucción.
Esto es lo que ustedes tienen que entender.
No hay forma de hacerlo bien en el Jaydy SQL porque esto es algo programático es algo que mando un insert
o un Na-Bai.
Luego mandó otro y en el medio voy preguntando si hay algún error en el medio y ahí voy a hacer un rol
back si hay error o voy a permitir que haga un comité que es actualizar todo lo que se ejecutó a partir
de estar transaction así que esto es lo que tienen que tener en cuenta a nivel transaccion.
No hay otra cosa es tan simple y tan tonto como esto son tres instrucciones que me van a permitir envolver
toda una operación compleja de muchas operaciones y sentencias SQL como si fueran una sola o se graban
todas correctamente o no se graba ninguna o se ejecutan todas correctamente o no se ejecuta ninguna.
Así que bueno esta era una pequeña clase el tema transacciones es un tema bastante requerido y quería
mencionarlo en este curso.
Muchas gracias y seguimos en el próximo capítulo.