Innholdsfortegnelse
De Lagrede prosedyrer er kodeblokker SQL som er lagret i databasen og brukes til å utføre en rekke handlinger som går utover de lagrede spørringene som f.eks boorkmarks, for å ringe dem gjør vi det med instruksjonene ANROP, kan vi til og med overføre parametere til sa Lagrede prosedyrer.Opprette en lagret prosedyre
For å fortsette med opprettelsen av en Lagret prosedyre (SP) vi må i utgangspunktet ha brukertillatelser for SKAP RUTINE Y ALTER RUTINE, for brukeren som vi skal bruke til å opprette dem i databasen, vil tillatelsen også være nødvendig HENRETTE, selv om dette automatisk tildeles skaperen av et SP.
For å lage en SP, det første vi må gjøre er å gå til Query Box, vanligvis for å avslutte en SQL -setning bruker vi semikolon (
Når dette er gjort, skal vi skrive inn koden vår i søkeboksen, la oss se et kodeeksempel:
OPPRETTE PROSEDYRE `add_page` (IN param_isbn VARCHAR (25), IN param_pages INT, OUT param_message VARCHAR (100)) BEGIN IF param_pages> 100 THEN SET param_message = 'antall sider er for stort'; ELSE UPDATE bok SET page_count = page_count + param_pages WHERE isbn = param_isbn; SET param_message = 'suksess'; SLUTT OM; SLUTT //
Som vi kan se, er det ikke veldig vanskelig å finne ut hva dette gjør SP, den første linjen er ganske enkel, vi definerer ganske enkelt input- og output -parametrene til SP, så begynner vi med BEGYNNE vår blokk, plasserer vi en HVIS ELSER betinget der vi evaluerer hver av inngangsparametrene, slik at vi for hver tilstand utfører en handling, så lukker vi de respektive blokkene i SP med ENDIF og END og vi ender med // som er vår tilpassede skilletegn.
Test av lagret prosedyre
Når den er definert, skal vi teste vår SP, for dette vil vi se et par elementer som vi ikke hadde brukt, la oss først se koden og deretter forklaringen:
ring add_page ('1-234567-22-0', 4, @melding);
VELG @melding;
La oss se, vi bruker ANROP for å kalle vår SP, så passerer vi to parametere som SP Jeg ventet, og til slutt bruker vi en MySQL -variabel for å motta svaret. Den andre linjen konsulterer vi ganske enkelt denne variabelen for å få verdien. Som vi kan se, er det ganske enkelt å jobbe med dette.
Manipulere den lagrede prosedyren
De SP Den er lagret i databasen, men den er ikke knyttet til noen bestemt tabell, så for å få tilgang til dem først går vi til databasevisningen i phpMyAdmin, på struktursiden vil vi ha en seksjon som heter Rutiner.
Når vi klikker på redigeringsikonet, ser vi at SP -koden som den viser oss er noe annerledes enn vårt, la oss se hva som vises:
DROP PROCEDURE `add_page` // CREATE DEFINER =` marc` @ `%` PROCEDURE `add_page` (IN param_isbn VARCHAR (25), IN param_pages INT, OUT param_message VARCHAR (100)) BEGIN IF param_pages> 100 THEN SET param_message = ' antall sider er for stort '; ELSE UPDATE bok SET page_count = page_count + param_pages WHERE isbn = param_isbn; SET param_message = 'suksess'; SLUTT OM;
De SP Vi kan ikke endre dem, så når vi prøver å redigere den, er den første instruksjonen DROP av SP, på denne måten eliminerer vi den for å gjenskape den, i de påfølgende linjene genererer den også en linje der brukeren som er spesifisert er spesifisert . er skaperen av nevnte SP; når endringene er gjort ved å klikke på Gå vi lager vår modifiserte SP og den lagres i databasen.
Med dette fullfører vi opplæringen, slik vi ser Lagrede prosedyrer De er ganske nyttige for å lagre blokker av instruksjoner som vi kan ringe når som helst, noe som gir oss kraften til underrutiner i databasen.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng