Red de conocimiento informático - Aprendizaje de programación - Compromiso, reversión y otros comandos de control de transacciones de MySQL

Compromiso, reversión y otros comandos de control de transacciones de MySQL

Hay dos métodos principales para las transacciones MYSQL

1. Iniciar, revertir, confirmar

comenzar o/iniciar transacción) Iniciar transacción

Revertir transacción para revertir

Confirmar transacción para confirmar

Transacción confirmada

Esta es la primera vez que se utiliza SET para cambiar el modo de confirmación automática de MySQL.

2. Utilice SET para cambiar el modo de confirmación automática de MySQL:

set autocommit=0 deshabilita la confirmación automática

set autocommit=1 habilita la confirmación automática commit

1. No importa si el commit automático es 1 o 0

Inicio

Una vez completada la transacción, solo los datos enviados tendrán efecto Después de la reversión, los datos se revertirán.

2. Cuando la confirmación automática es 0

Independientemente de si se inicia una transacción o no.

La reversión se revertirá solo cuando los datos enviados entren en vigor.

3. Si la confirmación automática es 1 y no se inicia ninguna transacción.

La reversión de llamadas es inútil. Porque la transacción se ha confirmado automáticamente.

Prueba de transacción 1

Prueba de transacción 2

La bandera es equivalente al nombre del punto de guardado definido

bandera de punto de guardado: el punto de guardado es permitido en la transacción Crear un punto de rescate. Una transacción puede tener múltiples puntos de guardado;

liberar el indicador de punto de guardado: eliminar el punto de guardado de la transacción; si no se especifica ningún punto de guardado, se generará una excepción

retroceder al indicador: retroceder; la transacción a marcar;

establecer transacción: se utiliza para establecer el nivel de aislamiento de la transacción. El motor de almacenamiento InnoDB proporciona los siguientes niveles de aislamiento para transacciones:

LECTURA NO COMPROMETIDA, LECTURA COMPROMETIDA, LECTURA REPETIBLE y SERIALIZABLE

SELECT @@ transacción_isolación

SELECT; @@ SESSION.transaction_isolation, @@SESSION.transaction_read_only