Mysql
 sql >> база данни >  >> RDS >> Mysql

PHP PDO MySQL и как наистина се справя с MySQL транзакциите?

https://dev.mysql.com /doc/refman/5.7/en/innodb-autocommit-commit-rollback.html казва:

Така че, когато зададете autocommit=0 в сесия (наречете го сесия 1), това имплицитно отваря транзакция и я оставя отворена за неопределено време.

Нивото на изолация на транзакциите по подразбиране е REPEATABLE-READ. Така че вашата сесия няма да види обновен изглед на приетите промени от работата на други сесии, докато сесия 1 изрично не извърши ангажимент или се върне назад.

Вашите LOCK TABLES в друга сесия 2 прави причинява имплицитен комит, но сесия 1 не вижда резултата, защото все още може да вижда само изолиран изглед на данните поради собствената си моментна снимка на транзакцията.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Масата е маркирана като катастрофирала и трябва да бъде поправена

  2. Форматирайте числото до 2 знака след десетичната запетая

  3. MySQL:Собствеността на директорията mysql се променя на 'mysql' от 'service_account' при рестартиране на linux сървър

  4. Премахване на нежелан символ от колона

  5. MySQL:@променлива срещу променлива. Каква е разликата?