Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP PDO MySQL e como ele realmente lida com transações MySQL?


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

Então, quando você define autocommit=0 em uma sessão (chame de sessão 1), isso implicitamente abre uma transação e a deixa aberta indefinidamente.

O nível de isolamento de transação padrão é REPEATABLE-READ. Portanto, sua sessão não verá uma exibição atualizada das alterações confirmadas do trabalho de outras sessões até que a sessão 1 seja confirmada ou revertida explicitamente.

Seu LOCK TABLES em outra sessão 2 faz causa uma confirmação implícita, mas a sessão 1 não vê o resultado porque ainda só consegue ver uma exibição isolada dos dados devido ao seu próprio instantâneo de transação.