sql >> Database teknologi >  >> RDS >> Mysql

Mysql læselås VÆLG FOR OPDATERING

Du leder efter navngivne låse (forsigtige, farlige ting, kom ikke udenom at eksperimentere med låse på produktionsservere :D).

Tag et kig på:

A1 :Vælg en unik streng at låse på, og brug GET_LOCK på den (sig, GET_LOCK('conversation_' || [id]); hvis den returnerer 1 låsen er din. Gør hvad du vil, og ring senere til RELEASE_LOCK (der tager højde for alle mulige scenarier, inklusive fejl).

A2 :Den anden parameter af GET_LOCK er en timeout i sekunder . Hvis handlingen udløber GET_LOCK returnerer 0 .

Fra den officielle dokumentation

Fed skrift er min:

  1. Betyder, at du kun kan holde én lås pr. forbindelse (ikke et problem for dit brugertilfælde)
  2. Betyder, at låse frigives, når du lukker forbindelsen
  3. Betyder, at to forskellige forbindelser (selv fra den samme pool) muligvis ikke får det samme udseende på én gang.


  1. PHP 5.5.0 med Microsoft SQL Server 2008 R2 - Ingen sqlsrv_connect()?

  2. Postgres COUNT antal kolonneværdier med INNER JOIN

  3. Masseopdatering i postgreSQL ved hjælp af unnest

  4. SQL begynderforespørgselslogik med 3 tabeller