sql >> Database >  >> RDS >> Mysql

Hoe werkt het opschorten van transacties in MySQL?

Het betekent niets bijzonders, een opgeschorte transactie is slechts een transactie die tijdelijk niet wordt gebruikt voor inserts, updates, commit of rollback, omdat er een nieuwe transactie moet worden gemaakt vanwege de opgegeven propagatie-eigenschappen en er slechts één transactie tegelijkertijd actief kan zijn.

In principe zijn er twee transactiemodellen:de geneste en platte model. Als u in het geneste model een transactie start en u hebt een andere nodig, blijft de eerste actief, dat wil zeggen dat de tweede wordt genest in het bovenliggende model, enzovoort. Aan de andere kant, in het platte model, wordt de eerste transactie opgeschort, dat wil zeggen, we zullen deze niet gebruiken totdat de nieuwe is voltooid.

AFAIK het platte model wordt bijna uitsluitend gebruikt (inclusief Spring en de EJB-specificatie), omdat het veel gemakkelijker te implementeren is :er is altijd maar één actieve transactie, dus het is gemakkelijk om te beslissen wat te doen in geval van een terugdraaiing, bijvoorbeeld vanwege een uitzondering. Wat nog belangrijker is, is dat de onderliggende database dit moet ondersteunen als je het geneste model nodig hebt, dus het platte model is slechts de gemene deler in dit geval.




  1. Gebruikers toevoegen, verwijderen en bewerken door admin in php

  2. Laravel Query Builder WHERE NOT IN

  3. Hoe een geserialiseerde string te repareren die is beschadigd door een onjuiste byte-tellingslengte?

  4. Een voorloopnul toevoegen aan sommige waarden in de kolom in MySQL