sql >> Database >  >> RDS >> Mysql

Een rij in een MYSQL-tabel vergrendelen tijdens een transactie

met behulp van een select ... for update query binnen de transactie zou je de semantiek moeten geven die je wilt - andere updates worden vergrendeld en andere sessies die dezelfde blokkering proberen te gebruiken, worden geblokkeerd totdat je commit:

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. MySQL join met where-clausule

  2. Reset AutoIncrement in SQL Server na verwijderen

  3. Rij naar kolom transformatie in MySQL

  4. Binaire modus inschakelen tijdens het herstellen van een database vanaf een SQL-dump