sql >> Databáze >  >> RDS >> Mysql

Chyba duplicitního klíče zamykání MySQL

Myslím, že zjednodušujete terminologii/proces. Po analýze dotazu a před jeho provedením potřebuje získat potřebné zámky. V tomto bodě je určeno, že:

  • relace 1 získá výhradní zámek, protože se vkládá a žádné jiné zámky neexistují
  • relace 2 a 3 se zařadí do fronty pro sdílený zámek, protože výhradní zámek již drží relace 1 a relace 2 a 3 mají chybu duplicitního klíče

Podle výše uvedeného jsou relace 2 a 3 zařazeny do fronty pro sdílené zámky, protože mají chybu duplicitního klíče. Když však relace 1 vymaže klíč a uvolní výhradní zámek, budou nyní relace 2 i 3 uděleny sdílené zámky. V tomto okamžiku se oba snaží získat exkluzivní zámek pro dokončení vložky. Ani jeden však nemůže, protože druhý již drží sdílený zámek. Takže výhradní zámek není udělen ani jednomu a uvíznou.



  1. Čeká se na dotaz na žádost o přátelství pro tabulku přátel a získávání dat z jiných tabulek

  2. Jak používat proměnné Mysql s Hibernate?

  3. Jaká je maximální délka názvu tabulky v Oracle?

  4. SQL IN operátor pro začátečníky