sql >> Databasteknik >  >> RDS >> Mysql

Låsa en rad i en MYSQL-tabell under en transaktion

med en select ... for update fråga inuti transaktionen bör ge dig den semantik du vill ha - andra uppdateringar kommer att låsas, och andra sessioner som försöker ta samma lås kommer att blockeras tills du begår:

START TRANSACTION
SELECT * FROM piggybank WHERE id IN (1, 2) FOR UPDATE;
SELECT amount FROM piggybank WHERE id = 2;
UPDATE piggybank SET amount = amount + 5 WHERE id = 1;
COMMIT



  1. SqlConnection.Close() inuti med hjälp av satsen

  2. Välj endast användare från en tabell om de inte finns i en annan

  3. Skapa kommentarer för vyer i mysql

  4. Databasbelastningsbalansering med ProxySQL &AWS Aurora