Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP में एक MySQL INNODB पंक्ति को लॉक करना

$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. मैं mysql पासवर्ड सत्यापन कैसे बंद करूं?

  2. Mysqli एकाधिक प्रश्नों की अनुमति नहीं देता है?

  3. एक MySQL डेटाबेस में समय पर अवधि को स्टोर करने का सबसे अच्छा तरीका?

  4. स्ट्रीम से MySQL पढ़ना विफल रहा

  5. JSON_SEARCH () - MySQL में JSON दस्तावेज़ में एक स्ट्रिंग का पथ खोजें