Propiedades de la transacción
Transacciones, frecuentemente conocidas por el término ÁCIDO, tienen cuatro propiedades generales principales.
- Atomicidad: Esto garantiza que todas las tareas dentro de la unidad de trabajo se completen con éxito; De lo contrario, justo en el punto de falla, el proceso se termina y los procesos anteriores se restauran a su estado anterior.
- Consistencia: Esto significa que tras un proceso suficientemente comprometido, la base de datos actualiza el estado de forma apropiada.
- Aislamiento: Ayuda a que las transacciones funcionen entre sí y de forma individual y transparente.
- Durabilidad: Esto asegura que, en caso de avería del sistema, el resultado o la consecuencia de una transacción comprometida se mantenga.
Transacciones MySQL en funcionamiento:
Dentro de MySQL, los dos términos Commit y Rollback se usan principalmente solo para transacciones MySQL. Las transacciones comienzan solo con la declaración BEGIN WORK y terminan con una declaración COMMIT o una declaración ROLLBACK. Las instrucciones SQL comprenden la mayor parte de la transacción entre las declaraciones de inicio y detención. Dicha serie de eventos es independiente del lenguaje de programación específico utilizado. Harás una ruta adecuada en cualquier idioma que estés usando para construir la aplicación. Las siguientes declaraciones SQL se pueden implementar utilizando la función mysql query ().
- EMPEZAR: Inicie su proceso o transacción proporcionando la instrucción BEGIN WORK SQL.
- Agregue el COMANDO SQL: una o incluso más sentencias SQL como SELECT, INSERT, UPDATE y DELETE, respectivamente. Confirme incluso si no hay error y todo cumple con sus expectativas.
- COMETER: La instrucción COMMIT debe imponerse después de que se realiza una transacción exitosa, de modo que las modificaciones a todas las tablas asociadas puedan tener pleno efecto.
- RETROCEDER: Si ocurre un mal funcionamiento, es apropiado enviar una instrucción ROLLBACK para revertir cada tabla especificada en la transacción a su condición anterior.
- AUTOCOMMIT: Por defecto, MySQL aplica las modificaciones de forma permanente a una base de datos. Si AUTOCOMMIT se establece en 1 (estándar), se asume que cada consulta SQL (ya sea dentro de una transacción o no) es una transacción completada y se confirma hasta que se complete de forma predeterminada. Para evitar el compromiso automático, establezca AUTOCOMMIT en 0.
Ejemplo 01: Modo AutoCommit activado:
MySQL opera con la fase Autocommit permitida por defecto. Asegura que MySQL guarde los cambios en el disco para crearlo perpetuamente siempre que ejecutemos una consulta que ajuste (altere) una tabla. No es necesario dar marcha atrás en la jugada. Probemos con AUTOCOMMIT en modo. Abra su shell de línea de comandos de MySQL y escriba su contraseña para comenzar.
Tome un ejemplo de un 'libro' de tabla que se ha creado en una base de datos 'datos'. En este momento, aún no hemos realizado ninguna consulta.
>> SELECCIONAR * DE datos.libro;
Paso 2: Este proceso es para actualizar la tabla 'libro'. Actualicemos el valor de la columna 'Autor' donde el 'Nombre' de un libro es 'Inicio'. Puede ver que los cambios se han realizado correctamente.
>> ACTUALIZAR datos.libro SET Autor = 'Cristian Steward' DONDE Nombre = 'Hogar';
Al echar un vistazo a la tabla actualizada, tenemos un valor modificado del autor donde 'nombre' es 'Inicio'.
>> SELECCIONAR * DE datos.libro;
Usemos el comando ROLLBACK para revertir los cambios simplemente agregando la siguiente consulta. Puede ver que la consulta ROLLBACK no funciona aquí, ya que muestra que '0 filas afectadas'.
>> ROLLBACK;
Incluso puedes ver la mesa también. La tabla no ha tenido cambios después de la ejecución de la instrucción ROLLBACK hasta ahora. Esto significa que ROLLBACK no funciona cuando tenemos AUTOCOMMIT activado por defecto.
>> SELECCIONAR * DE datos.libro;
Ejemplo 02: Modo AutoCommit desactivado:
Para revertir los cambios realizados, intentemos con el modo de apagado AUTOCOMMIT. Usando el mismo ejemplo de tabla 'libro', realizaremos algunos cambios en ella. Usaremos la declaración START TRANSACTION para desactivar su fase de confirmación automática o simplemente escriba el siguiente comando para desactivar AUTOCOMMIT.
>> ESTABLECER AUTOCOMMIT = 0;Digamos que tenemos el mismo 'libro' de tabla en nuestra base de datos, y tenemos que hacerle cambios. Luego revierte esos cambios a los anteriores nuevamente.
>> SELECCIONAR * DE datos.libro;
Si no ha desactivado el modo AUTOCOMMIT, comience con una consulta INICIAR TRANSACCIÓN en el shell de la línea de comandos como se muestra a continuación.
>> INICIAR TRANSACCIÓN;
Actualizaremos la misma tabla usando el comando ACTUALIZAR configurando el 'Autor' como 'Aliana' donde el 'Nombre' de un libro es 'Sueño'. Hágalo usando el siguiente comando. Verás que los cambios se realizarán con éxito y eficacia.
>> ACTUALIZAR datos.libro SET Autho = 'Aliana' DONDE Nombre = 'Sueño';
Comprobemos si la consulta anterior ha funcionado perfectamente y ha realizado cambios en la tabla o no. Puede consultar la tabla actualizada utilizando el siguiente comando SELECT como siempre.
>> SELECCIONAR * DE datos.libro;Puede ver que la consulta ha funcionado muy bien, como se muestra a continuación.
Ahora, es un turno del comando ROLLBACK para realizar su función. Pruebe el comando ROLLBACK en su línea de comando para revertir la actualización reciente a la tabla.
>> ROLLBACK;
Comprobemos si la consulta ROLLBACK ha funcionado como debería funcionar o no. Para esto, debe verificar la tabla 'libro' nuevamente usando el comando 'SELECCIONAR' como siempre.
>> SELECCIONAR * DE datos.libro;Puede ver en la salida a continuación que ROLLBACK finalmente ha funcionado. Ha revertido los cambios realizados por la consulta ACTUALIZAR en esta tabla.
Conclusión:
Eso es todo para las transacciones de MySQL. Espero que esta guía le ayude a realizar transacciones MySQL de forma conveniente.