sql >> Database teknologi >  >> RDS >> Mysql

Hvordan fungerer suspension af transaktioner i MySQL?

Det betyder ikke noget særligt, en suspenderet transaktion er bare en transaktion, der midlertidigt ikke bruges til inserts, opdateringer, commit eller rollback, fordi en ny transaktion skal oprettes på grund af de angivne udbredelsesegenskaber, og kun én transaktion kan være aktiv på samme tid.

Grundlæggende er der to transaktionsmodeller:den indlejrede og flade model. I den indlejrede model, hvis du starter en transaktion, og du har brug for en anden, forbliver den første aktiv, det vil sige, at den anden vil blive indlejret i sin overordnede, og så videre. På den anden side, i den flade model, vil den første transaktion blive suspenderet, det vil sige, at vi ikke bruger den, før den nye er gennemført.

AFAIK den flade model bruges næsten udelukkende (inklusive Spring og EJB spec også), da det er meget nemmere at implementere :der er kun én aktiv transaktion på et givet tidspunkt, så det er nemt at beslutte, hvad man skal gøre i tilfælde af en tilbagerulning, f.eks. på grund af en undtagelse. Endnu vigtigere er det, at den underliggende database skal understøtte den, hvis du har brug for den indlejrede model, så den flade model er kun fællesnævneren i dette tilfælde.




  1. FEJL 1452 (23000):Kan ikke tilføje eller opdatere en underordnet række:en fremmednøgle-begrænsning mislykkes

  2. Tjek om brugernavn findes i mysql-tabel via php?

  3. Google Data Studio - Cloud SQL For MySQL Connector Fejl

  4. Hvordan genbruger man en underforespørgsel i sql?