sql >> Base de Datos >  >> RDS >> Mysql

PHP PDO MySQL y ¿cómo se ocupa realmente de las transacciones de MySQL?

https://dev.mysql.com /doc/refman/5.7/en/innodb-autocommit-commit-rollback.html dice:

Entonces, cuando establece autocommit=0 en una sesión (llámela sesión 1), esto implícitamente abre una transacción y la deja abierta indefinidamente.

El nivel de aislamiento de transacción predeterminado es REPEATABLE-READ. Por lo tanto, su sesión no verá una vista actualizada de los cambios confirmados del trabajo de otras sesiones hasta que la sesión 1 se confirme o revierta explícitamente.

Tus LOCK TABLES en otra sesión 2 causa una confirmación implícita, pero la sesión 1 no ve el resultado porque solo puede ver una vista aislada de los datos debido a su propia instantánea de transacción.