Den eneste funksjonen til en MySQL markøren er å få og vise database poster gjennom søkeparametere . Selv om denne definisjonen kan høres enkelt ut , sannheten er at , fordi pekere operere annerledes og returnere forskjellige resultater fra typiske SELECT-setninger , å vite hvordan og når man skal bruke MySQL pekere kan noen ganger være forvirrende. Generelt, MySQL pekere er et passende valg for behandling av data rader som inneholder flere tabeller eller for når du ønsker å hente og behandle bestemte rader i en gruppe . En kort tutorial kan gi grunnleggende informasjon om hvordan å utføre denne oppgaven . Instruksjoner
en
Lag en MySQL markøren i erklæringen delen av søket ditt. Gi den et unikt navn - viktig fordi MySQL tillater deg å inkludere flere pekere i en enkelt prosedyre , funksjon eller trigger - og binde den til en SELECT eller SELECT /HVOR uttalelse. En markør som vil få og vise en utvalgt gruppe av navn på ansatte i en kolonne og en tre - sifret identifikasjonsnummer i en annen vises som : en
DECLARE name_cursor CURSORFORSELECT emp_name , emp_id fra Samkjøringsmodellen HVOR emp_id mellom 100 og 500 ;
2
Sandwich markøren erklæring etter prosedyren variabel og betingelser erklæringer , og før valgfrie handler erklæringer , hvis du inkluderer disse i ditt spørsmål:
DECLARE emp_name VARCHAR ( 30 ), DECLARE emp_id VARCHAR ( 4 ) ;
DECLARE name_cursor CURSORFORSELECT emp_name , emp_id fra Samkjøringsmodellen HVOR emp_id mellom 100 og 500 ;
DECLARE FORTSETT HANDLER FOR IKKE FOUNDSET no_more_rows = TRUE ;
3
Opprett en ny tabell for å lagre og vise informasjon:
CREATE tABLE IF IKKE eksisterer emp_info ( emp_name VARCHAR , emp_id VARCHAR ) ;
4
Åpne markøren. Åpningen kjøres automatisk spørringen henhold til SELECT-setningen du valgte , teller antall rader spørringen returnerer og lagrer resultatet i minnet for videre behandling : en
OPEN name_cursor ;
5
hente inn og behandle databaseoppføringer. Dette trinnet er der det virkelige arbeidet med markøren foregår som den looper tilbake fra den siste til den første databasen posten og gjentar eller looper igjen , rad -for- rad , for å hente ut den informasjonen du trenger, og sett den inn i emp_info tabell:
HENT name_cursor INTO emp_name , emp_id ; INSERT INTO emp_id ( emp_name , emp_id ) ;
( Referanse 3 )
6
Lukk markøren for å frigjøre interne minnet markøren er å bruke : en
LUKK name_cursor ;
7
vise resultatene av den nye lagrede prosedyren : en
SELECT * FROM emp_info ;