I de fleste tilfeller, når vi utfører SQL -spørsmål ved hjelp av verken MySQL Shell eller MySQL Workbench, lagrer vi ikke resultatene, selv om vi har funksjonaliteten for å lagre resultatene behandlet av serveren ved hjelp av en lagret prosedyre.
I denne opplæringen vil jeg ikke diskutere lagrede prosedyrer, funksjoner eller utløsere. I stedet vil jeg ganske enkelt dykke ned i å vise deg hvordan du kan bruke MySQL -markører til å kjøre resultatene i de lagrede prosedyrene.
Før vi begynner å lage og bruke en markør med eksempler, la oss ta et øyeblikk til å diskutere noen viktige punkter om en markør som du bør være klar over:
Funksjoner i en MySQL -markør
Nå som vi vet hva en markør betyr, kan vi begynne å illustrere hvordan det fungerer ved å bruke eksempler i den virkelige verden:
Grunnleggende bruk
Den generelle syntaksen for å erklære en markør i MySQL er grei. Vi starter med å bruke erklærte nøkkelord som vist i eksemplet på spørringen nedenfor:
Hvordan erklære en markør
Erklære cursor_name markør for Select_expression;Markensnavnet er navnet som er gitt til markøren under erklæringen. Legg merke til at erklæringen om en markør skal være etter at noen erklærte variabler for å forhindre at MySQL resulterer i feil.
Neste er Select_Expression, som lagrer Select -setningen tilknyttet markøren.
Hvordan åpne en markør
Når vi har erklært en markør og MySQL er klar over at markøren eksisterer, kan vi begynne å bruke den som krever at markøren åpnes.
Den generelle syntaksen for å åpne en markør er som vist i spørringen nedenfor:
Åpen Cursor_name;Denne kommandoen åpner markørene som er referert med navnet sitt, og man kan begynne å bruke den.
Hvordan hente data
Å ha markøren åpen lar deg hente informasjonen som er lagret i enten en prosedyre, en funksjon eller en trigger.
Den generelle syntaksen for å hente data ved hjelp av en markør er som vist:
Hente cursor_name til variabler;MERK: Forsikre deg om at markøren brukes etter at variablene er erklært for å unngå feil.
Hvordan lukke og slippe en markør
Når operasjonene som krever den definerte markøren er fullført, er det best å lukke markøren som frigjør minnet som er knyttet til den.
Når en markør er lukket, må en bruker åpne markøren på nytt ved hjelp av de åpne nøkkelordene (vist over) før du bruker markøren.
Du trenger ikke å erklære markøren etter den nære uttalelsen.
Den generelle syntaksen for å lukke en markør er som vist i spørringen nedenfor:
Lukk markørnavn;Feilhåndtering
MySQL Markør fungerer ved rekursivt å lese neste rad i resultatsettet. Hvis neste rad ikke er tilgjengelig, vil markøren lukke og ikke returnere dataene med mindre det er spesifisert. Dette kan være et problem, spesielt etter at markøren når slutten av resultatet.
Som en løsning er en ikke funnet behandler definert. Dette spesifiserer handlingen som skal tas hvis neste rad ikke blir funnet.
Den generelle syntaksen for feilhåndtering når du bruker en markør er:
Erklære fortsette behandleren ikke funnet set terminat = sant;Termininatverdien er en variabel som brukes til å spesifisere at markøren har nådd slutten av resultatet. Variabelnavnet kan være et hvilket.
MERK: Som alle variablene som brukes i en markør, må den defineres før den brukes i markøren.
Eksempel Bruk sak
La oss lage en markør som samler kundenes e -postmeldinger som er tilgjengelige i kundebordet i Sakila -eksempeldatabasen.
Ressursen for nedlasting og installasjon av Sakila -databasen er nedenfor:
https: // dev.mysql.com/doc/sakila/en/
Følgende illustrerer en prosedyre som bruker en markør for å hente e -post:
Bruk Sakila;Når spørringen er utført, vil du få en utdata som vist nedenfor:
Konklusjon
I denne opplæringen gikk vi gjennom å bruke MySQL -markører for å analysere dataene som er lagret i resultatsettet. Tenk på dokumentasjonen for å mestre hvordan du implementerer markørene.