sql >> Database teknologi >  >> RDS >> Mysql

Låsning af en række i en MYSQL-tabel under en transaktion

ved hjælp af en select ... for update forespørgsel inde i transaktionen skulle give dig den semantik, du ønsker - andre opdateringer vil blive låst, og andre sessioner, der forsøger at tage den samme lås, vil blokere, indtil du forpligter dig:

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. Eksempler på konvertering af 'dato' til 'datetime' i SQL Server (T-SQL)

  2. Avanceret failover ved brug af Post/pre Script Hooks

  3. MySQL Vælg Hvor maks. dato og maks. tid

  4. SQLite Inner Join