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

Uzamčení řádku v tabulce MYSQL během transakce

pomocí select ... for update dotaz uvnitř transakce by vám měl poskytnout požadovanou sémantiku – ostatní aktualizace budou uzamčeny a ostatní relace pokoušející se o stejný zámek budou blokovány, dokud se nepotvrdíte:

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. Převod kódu MySQL na Access:GROUP_CONCAT a trojité JOIN

  2. Jak date_trunc() funguje v PostgreSQL

  3. Jak převést všechny tabulky z MyISAM do InnoDB?

  4. Vrátit všechny skupiny souborů pro aktuální databázi na serveru SQL Server