Una transacción en MySQL es una secuencia de una o más sentencias SQL que juntas forman una unidad de trabajo.
Imagina que quieres borrar uno o varios registros de una tabla, pero te equivocas y eliminas todos los registros de la tabla. ¿Existe alguna forma de subsanar el error y dar marcha atrás para recuperar los registros eliminados? La respuesta es sí, utilizando transacciones.
Por defecto MySQL funciona en modo autocommit. Esto quiere decir que se confirma (COMMIT) cada sentencia ejecutada.
Los pasos para iniciar una transacción son los siguientes:
- Se comienza una transacción con la sentencia START TRANSACTION.
- Si se realizan modificaciones en la base de datos y queremos volver atrás y cancelar los cambios realizados hasta el momento, utilizaremos la sentencia ROLLBACK.
- Si queremos confirmar los cambios realizados en la base de datos, utilizaremos la sentencia COMMIT, lo cual implica también que termina la transacción.
- Si queremos comenzar una nueva transacción, usaremos START TRANSACTION.
Nota: para que las transacciones funcionen correctamente, debemos utilizar tablas InnoDB.
Veamos un ejemplo.
Disponemos de la tabla EMPLE, que está formada por los campos que se muestran en la imagen.
A continuación comenzamos una transacción con START TRANSACTION.
Modificamos el salario de todos los empleados de la tabla EMPLE, con la siguiente sentencia SQL.
- update emple set salario=1000;
Observamos a continuación que se ha modificado el salario de todos los empleados.
Deshacemos el trabajo ya que nos hemos equivocado. Para ello utilizamos la sentencia ROLLBACK.
Y comprobamos a continuación que la tabla vuelve a su estado original.
Si queremos validar los cambios en la base de datos, completaremos la transacción con el uso de la sentencia COMMIT. Si ejecutamos ROLLBACK justo después de hacer el COMMIT, los cambios realizados sobre la base de datos permanecerán, debido a que anteriormente se validó la transacción.



11:34 a. m.
Consultor GNU/Linux






Posted in:
0 comentarios:
Publicar un comentario