Mysql
 sql >> база данни >  >> RDS >> Mysql

Заключване на MySQL INNODB ред в 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();

Това е сложен въпрос; нива на заключване и транзакции, но магията по-горе беше BEGIN изявление. Без него всеки израз се изпълняваше на собствено ниво на транзакция и FOR UPDATE ключалката се отключваше твърде рано.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wildfly 8.0.0 mysql проблеми с източник на данни

  2. php json_encode mysql резултат

  3. mysql cte . използването на with и вмъкване предупреждава за синтактична грешка

  4. Nginx - Изтегляне на PHP вместо изпълнение

  5. GET_FORMAT() Примери – MySQL