Mysql sjekk om låsen er gratis

Mysql sjekk om låsen er gratis

I MySQL refererer en lås til et spesielt flagg som er inkludert i en databasetabell. En lås forhindrer andre økter i å få tilgang til den samme tabellen samtidig. En MySQL -økt kan koble til og få tilgang til eller frigjøre låsen for seg selv. Dette betyr at en økt ikke kan skaffe eller frigjøre låser for andre økter. Når en lås er utgitt, kan flere økter få tilgang til og endre tabellen.

Denne artikkelen vil utforske grunnleggende om låser i MySQL og hvordan vi kan opprette en og skaffe og slippe en lås til en databasetabell.

Lag prøvetabell

Før vi fortsetter med opprettelsen og anskaffelsen av låser i MySQL, la oss lage et eksempel på tabellen vi kan bruke for å illustrere denne koden.

Kodebit:

Hvordan lage lås i mysql

Når vi har opprettet prøvebordet og klar til å gå, kan vi fortsette og diskutere hvordan du lager en lås i et MySQL -tabell.

Som du gjettet, for å lage en lås i MySQL, bruker vi uttalelsen om låsbord.

Syntaksen er som vist nedenfor:

Låsetabeller Tabell_navn [Les | SKRIVE]

I utsagnet over starter vi med lock -tabellene nøkkelord etterfulgt av tabellnavnet vi ønsker å låse.

Vi spesifiserer deretter hvilken type lås vi ønsker å lage for set -tabellen. Støttede låsetyper:

  1. Les [lokal] -Økt kan lese bordet, men ikke skrive til det.
    en. Denne typen lås kan brukes av flere økter samtidig, da ingen endringer blir brukt på tabellen.
    b. Tilsvarende kan andre økter uten leselås også lese i bordet.
  2. [Lav prioritet] Skriv - Denne typen lås lar økten lese og skrive til bordet.
    en. I motsetning til leselåsen, er det bare en enkelt klient som kan skaffe seg en skrivelås til et gitt bord.
    b. MySQL vil også blokkere eventuelle låseforespørsler fra andre økter mens denne låsen holdes.

Lag leselås

Vi kan opprette en leselås til bordet vi opprettet tidligere ved å kjøre koden som vist:

Brukere av låsebord leser;

Dette skal opprette en leselås til bordet som bare tillater leseoperasjoner. Vi kan bekrefte dette ved å sette inn en post i tabellen.

Sett inn i
Brukere (brukernavn, e -post, land)
Verdier
('Linuxhint', '[email protected] ',' oss ');

Siden bordet er låst med en leselås, vil MySQL returnere en feil som vist:

For å sette inn i tabellen, kan du frigjøre låsen ved å bruke opplåsningserklæringen.

Låse opp tabeller;

Dette skal låse opp tabellene og la deg og andre økter utføre måloperasjonene.

Mysql sjekk om navngitt lås er gratis

Heldigvis gir MySQL oss en enkel funksjon som lar oss avgjøre om en navngitt lås er gratis eller ikke.

Funksjonssyntaks er som vist nedenfor:

Is_free_lock (str)

Der Str viser til navnet på låsen, ønsker du å sjekke om den er gratis. Hvis gratis, returnerer funksjonen 1. Derfor bruker ingen økt låsen. Ellers returnerer funksjonen 0, noe som betyr at låsen er i bruk.

En annen funksjon du trenger å vite er IS_USED_LOCK () -funksjonen. Syntaksen er som vist:

IS_USED_LOCK (STR)

Funksjonen avgjør om den oppgitte låsen er gratis. Hvis det er sant, Return Session's Connection Identifikator. Ellers, returner null.

Konklusjon

Denne artikkelen utforsket hvordan du jobber med låser i MySQL -databasen. Vi diskuterte hvordan du kan lage en skaffe en lås til en bestemt tabell, hvordan du kan låse opp et bord og hvordan du kan sjekke om en lås er gratis eller ikke.