2. Transacción
Unidad lógica de procesamiento
– Secuencia de operaciones que
implican accesos a la base de datos
Una Transacción está delimitada por
instrucciones de inicio transacción y
fin transacción (la transacción
consiste en todas las operaciones que
se ejecutan entre inicio transacción y
fin transacción)
3. Pasos para usar transacciones con MySQL:
* Iniciar una transacción con el uso de la
sentencia BEGIN.
* Actualizar, insertar o eliminar registros en
la base de datos.
* Si se quieren los cambios a la base de datos,
completar la transacción con el uso de la
sentencia COMMIT. Únicamente cuando se
procesa un COMMIT los cambios hechos por
las consultas serán permanentes.
* Si sucede algún problema, podemos hacer
uso de la sentencia ROLLBACK para
cancelar los cambios que han sido realizados
por las consultas que han sido ejecutadas
hasta el momento.
4. …
BEGIN; Inicia la transacción
COMMIT;Finaliza la transacción
actual haciendo permanentes todos
los cambios pendientes
ROLLBACK; Finaliza la transacción
actual descartando todos los cambios
pendientes .
5. Una transacción debe
estar en uno de los
siguientes estados:
Activa (estado inicial): la transacción
permanece en este estado durante su ejecución
Parcialmente Comprometida: la transacción
pasa a este estado cuando acaba de realizar la
última instrucción
Fallida: la transacción pasa a este estado tras
descubrir que no puede continuar la ejecución
normal
Abortada: la transacción pasa a este estado
después de haber restablecido la base de datos
a su estado anterior
Comprometida: la transacción pasa a este
estado tras completarse con éxito
11. Lecturas Coherentes
Al realizar una consulta de
selección, MySQL devuelve los valores
presentes de la base de datos hasta la
última transacción completada. Si en
el momento de realizar la consulta
existe alguna transacción en
progreso, los resultados de las
instrucciones update o insert no se
reflejarán.
14. Lectura de bloqueos
para Actualizaciones
Para evitar que se creen registros
duplicados.
UPDATE
Leer el valor actual e inserta un
nuevo valor, incrementado en una
unidad.
19. Bloqueo de lectura en
modo compartido
Este tipo de bloqueo no devuelve un
valor si el valor que esta leyendo ha
sido modificado por otra transaccion
incompleta. Devuelve el ultimo
valor, pero no forma parte de una
transaccion cuya intencion es
modificar el valor.
21. Confirmaciones
automaticas
De manera predeterminada, y a
menos que se especifique una
transaccion con BEGIN, MySQL
confirma automaticamente las
instrucciones.