Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengunci baris MySQL INNODB di 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();

Ini adalah masalah yang kompleks; penguncian dan tingkat transaksi, tetapi keajaiban di atas adalah BEGIN penyataan. Tanpa itu, setiap pernyataan berjalan di tingkat transaksinya sendiri, dan FOR UPDATE kunci dibuka terlalu dini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menghubungkan database mySQL menggunakan C++

  2. Cara Menghitung Pengguna Aktif Bulanan (MAU) di MySQL

  3. Cara tercepat untuk membaca tabel MySQL besar dengan python

  4. Permintaan MySQL yang menghitung jumlah parsial

  5. PHP/Apache:PHP Kesalahan fatal:Panggilan ke fungsi yang tidak ditentukan mysql_connect()