Du kan bruge en SELECT FOR UPDATE
. Inde i din transaktion skal du starte med at vælge de rækker, som du vil "låse", noget som dette:
SELECT * from TABLE where id = 123 FOR UPDATE;
Hvis to forskellige transaktioner forsøger at gøre dette på samme tid, vil MySQL få den anden til at vente, indtil den første har begået transaktionen. På den måde vil du være sikker på, at den anden transaktion først ser på rækken, efter at den første er færdig med den.