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

MySQL заключване в грешка при дублиран ключ

Мисля, че опростявате терминологията/процеса. След като заявката бъде анализирана и преди да бъде изпълнена, тя трябва да придобие необходимите ключалки. В този момент се установява, че:

  • сесия 1 получава изключителното заключване, защото се вмъква и няма други заключвания
  • сесия 2 и 3 се поставят на опашка за споделеното заключване, тъй като изключителното заключване вече се държи от сесия 1, а сесия 2 и 3 са в грешка с дублиран ключ.

Съгласно по-горе, сесии 2 и 3 се поставят на опашка за споделени ключалки, защото са в грешка с дублиран ключ. Въпреки това, когато сесия 1 изтрие ключа и освободи изключителната ключалка, сега и на сесия 2, и на 3 се предоставят споделени ключалки. В този момент и двамата се опитват да придобият изключителна ключалка, за да завършат вложката. Никой обаче не може, защото другият вече държи споделената ключалка. Така че изключителното заключване не е предоставено нито на двете и те блокират.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да съхранявам поръчки?

  2. Направете mysql чувствителен към главни букви?

  3. Как да накараме silverlight да получи данните си от MySQL

  4. MySQL срещу MariaDB

  5. ГРЕШКА 1698 (28000):Достъпът е отказан за потребител 'root'@'localhost'