SELECT ... FOR UPDATE
vil låse posten med en skrive- (eksklusiv) lås, indtil transaktionen er gennemført (begået eller rullet tilbage).
For at vælge en post og sikre, at den ikke bliver ændret, før du opdaterer den, kan du starte en transaktion ved at vælge posten med SELECT ... FOR UPDATE
, foretag en hurtig behandling, opdater posten, og begå (eller fortryd) transaktionen.
Hvis du bruger SELECT ... FOR UPDATE
uden for en transaktion (autocommit TIL), så vil låsen stadig blive frigivet med det samme, så sørg for at bruge en transaktion til at beholde låsen.
For ydeevne skal du ikke holde transaktioner åbne i særlig lang tid, så opdateringen bør udføres med det samme.