ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sentencias relacionadas con el uso de transacciones en MySQL.


Enviado por   •  12 de Mayo de 2016  •  Apuntes  •  568 Palabras (3 Páginas)  •  126 Visitas

Página 1 de 3

 Sentencias relacionadas con el uso de transacciones en MySQL.

En MySQL cuando trabajamos con tablas InnoDB y el modo de ejecución AUTOCOMMIT está activado cada sentencia se ejecuta automáticamente. Es el modo por defecto tal y como se ve en la siguiente imagen:

SET AUTOCOMMIT=1 (ON)

En este caso también podemos llevar a cabo una transacción con varias sentencias si utilizamos START TRANSACTION antes de la primera de ellas y terminamos con ROLLBACK o COMMIT. Es como si lo deshabilitáramos temporalmente. Una vez terminada la transacción el modo AUTOCOMMIT vuelve a su estado activado.

SET AUTOCOMMIT=0 (OFF)

Si deshabilitamos AUTOCOMMIT todas las sentencias se ejecutan como si se tratara de una transacción abierta que se termina con ROLLBACK o COMMIT. Si la conexión se cierra sin confirmar, la transacción se cancela.

Si una sentencia devuelve un error la confirmación o cancelación depende del error de que se trate.

SAVEPOINT etiqueta……ROLLBACK TO SAVEPOINT

Con SAVEPOINT podemos crear un punto dentro de una transacción y darle un nombre (etiqueta), de forma que al deshacer una transacción con ROLLBACK TO SAVEPOINT etiqueta se deshacen únicamente las modificaciones hechas después de ese punto (etiqueta).


Ejemplo: En el ejemplo que ves a continuación el modo AUTOCOMMIT está activado. ¿Qué ocurrirá en nuestra base de datos al ejecutar la siguiente transacción?

Efectivamente añadimos un nuevo cliente, pero no su vehículo.

Por tanto podemos resumir las sentencias implicadas en el uso de transacciones en la siguiente tabla: SET AUTOCOMMIT=0

Al ejecutar esta sentencia, MySQL queda configurado para que las órdenes de modificación que se ejecuten a continuación muestren los datos tal como quedarían pero realmente no se han modificado en la base de datos. La confirmación definitiva se realiza con COMMIT, si se cierra el programa sin confirmar la transacción, ésta no se realiza.

Cuando ponemos este estado, dicho tratamiento de transacciones permanece hasta que lo cambiemos.

SET AUTOCOMMIT=1

El sistema se comporta de forma que una instrucción queda confirmada sobre la base de datos en el momento que se ejecuta. A este modo de confirmación automática se le denomina modo AUTOCOMMIT.

COMMIT

Cuando se ejecuta esta sentencia el sistema actualiza la base de datos con todos los cambios realizados desde la última vez que se ejecutó esta sentencia.

Entre dos ejecuciones de COMMIT podríamos ver el efecto de los cambios pero son cambios virtuales, que no se han producido en la realidad.

ROLLBACK

Cuando tenemos el estado AUTOCOMMIT=0, ROLLBACK devuelve la base de datos al estado en que se encontraba cuando se realizó el anterior COMMIT o cuando se estableció AUTOCOMMIT a 0.

Cuando se produce un fallo de software o de hardware que produce una salida del SGBD accidental, al volver a iniciar el sistema, se produce un ROLLBACK automático y la base de datos vuelve a un estado anterior.

SAVEPOINT etiqueta

Crea un posible punto de retorno o vuelta atrás en un punto intermedio de la transacción que se haya iniciado. Todos los puntos de una transacción se borran al ejecutar COMMIT o ROLLBACK.

ROLLBACK TO SAVEPOINT etiqueta

Deshace la transacción hasta el punto nombrado como ‘etiqueta’

START TRANSACTION

Ó

BEGIN

Cuando MySQL está en modo AUTOCOMMIT permite que se dé inicio a una transacción, que se confirmará con COMMIT. Si ejecutamos ROLLBACK la base de datos vuelve al estado previo antes de ejecutar START TRANSACTION.

Se trata de una única transacción que, una vez finalizada el sistema vuelve al estado AUTOCOMMIT.

...

Descargar como (para miembros actualizados)  txt (3.6 Kb)   pdf (74 Kb)   docx (10.1 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com