Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Blokowanie wiersza MySQL INNODB w PHP

$mysqli->autocommit(FALSE);
$mysqli->query("BEGIN;");
$mysqli->multi_query("SELECT id FROM links WHERE id > (SELECT value FROM meta WHERE name='scan' FOR UPDATE) LIMIT 1000;UPDATE meta SET value=value+1000 WHERE name='scan';");
$mysqli->commit();

To złożony problem; poziomy blokowania i transakcji, ale magią powyżej był BEGIN oświadczenie. Bez tego każda instrukcja działała na własnym poziomie transakcji, a FOR UPDATE zamek został odblokowany zbyt wcześnie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Łączniki i licencjonowanie MySQL

  2. Najpierw ZAMÓW WEDŁUG alfabetu, a następnie według numeru

  3. Używanie mySql przez proxy generuje zgłoszenia Przyczyna:java.sql.SQLException:instrukcje wywoływane nie są obsługiwane. po ponownym połączeniu

  4. Generowanie losowego i unikalnego ciągu 8 znaków za pomocą MySQL

  5. Jak przechowywać html w bazie danych mysql