sql >> Databasteknik >  >> RDS >> Mysql

MySQL låsning i Duplicate Key Error

Jag tror att du förenklar terminologin/processen. Efter att frågan har analyserats och innan den exekveras måste den skaffa nödvändiga lås. Det är vid denna tidpunkt som det fastställs att:

  • session 1 får det exklusiva låset, eftersom det sätts in och det inte finns några andra lås
  • session 2 och 3 ställs i kö för det delade låset eftersom det exklusiva låset redan hålls av session 1, och session 2 och 3 har ett dubblettnyckelfel

Enligt ovan ställs session 2 och 3 i kö för delade lås eftersom de är i dubbla nyckelfel. Men när session 1 tar bort nyckeln och släpper det exklusiva låset, får nu både session 2 och 3 delade lås. Vid denna tidpunkt försöker båda skaffa ett exklusivt lås för att slutföra insättningen. Ingen av dem kan dock, eftersom den andra redan har det delade låset. Så exklusivt lås beviljas inte heller och de låser fast.



  1. Vad är sekventiella kontra parallella strömmar i Java?

  2. Återställa MySQL-databas från fysiska filer

  3. Skriv ett tal med två decimaler SQL Server

  4. Bästa sättet att infoga flera rader i Oracle?