sql >> Database >  >> RDS >> Mysql

Mysql leesslot KIES VOOR UPDATE

Je bent op zoek naar sloten met een naam (voorzichtig, gevaarlijk spul, kom niet aan het experimenteren met sloten op productieservers :D).

Kijk eens naar:

A1 :Kies een unieke string om te vergrendelen en gebruik GET_LOCK erop (zeg, GET_LOCK('conversation_' || [id]); als het 1 teruggeeft het slot is van jou. Doe wat je wilt en bel later RELEASE_LOCK (rekening houdend met alle mogelijke scenario's, inclusief fouten).

A2 :De tweede parameter van GET_LOCK is een time-out in seconden . Als de bewerking een time-out heeft GET_LOCK retourneert 0 .

Uit de officiële documentatie

Vetgedrukt zijn van mij:

  1. Betekent dat u slechts één slot per verbinding kunt vasthouden (geen probleem voor uw gebruikerscase)
  2. Betekent dat vergrendelingen worden vrijgegeven zodra u sluit de verbinding
  3. Betekent dat twee verschillende verbindingen (zelfs van dezelfde pool) mogelijk niet in één keer hetzelfde uiterlijk krijgen.


  1. Update MySQL-tabel in brokken

  2. Syntaxisfout bij gebruik van scheidingstekens met Aurora Serverless MySQL 5.6

  3. mysql recursieve (boom) bovenliggende onderliggende categorie

  4. Hoe maak je een ja/nee boolean veld in SQL server?