sql >> Databáze >  >> RDS >> Mysql

Proč používat SELECT FOR UPDATE?

SELECT ... FOR UPDATE uzamkne záznam pomocí zámku pro zápis (výhradní), dokud nebude transakce dokončena (potvrzena nebo vrácena zpět).

Chcete-li vybrat záznam a zajistit, že se nezmění, dokud jej neaktualizujete, můžete zahájit transakci, vyberte záznam pomocí SELECT ... FOR UPDATE , proveďte rychlé zpracování, aktualizujte záznam a poté transakci potvrďte (nebo vraťte zpět).

Pokud použijete SELECT ... FOR UPDATE mimo transakci (autocommit ON), pak bude zámek stále okamžitě uvolněn, takže se ujistěte, že k udržení zámku použijete transakci.

Kvůli výkonu nenechávejte transakce otevřené příliš dlouho, takže aktualizace by měla být provedena okamžitě.




  1. Seskupit podle hodnoty RAND()

  2. Jak používat array_agg() pro varchar[]

  3. Jak přejmenuji cizí klíč v mysql?

  4. Jak SELECT * ale bez Názvy sloupců musí být jedinečné v každém zobrazení