PhpMyAdmin - Opgeslagen procedures

Inhoudsopgave
De Opgeslagen procedures zijn blokken code SQL die zijn opgeslagen in de database en worden gebruikt om een ​​reeks acties uit te voeren die verder gaan dan de opgeslagen zoekopdrachten, zoals: boorsporen, om ze te noemen doen we het met de instructie TELEFOONGESPREK, we kunnen zelfs parameters doorgeven aan said Opgeslagen procedures.
Een opgeslagen procedure maken
Om door te gaan met het maken van een Opgeslagen procedure (SP) we moeten in eerste instantie de gebruikersrechten hebben van CREER ROUTINE Y WIJZIG ROUTINE, voor de gebruiker die we zullen gebruiken om ze in de database te maken, is de toestemming ook nodig UITVOEREN, hoewel dit automatisch wordt toegewezen aan de maker van een SP.
om een ​​te maken SP, het eerste wat we moeten doen is naar de Query Box gaan, meestal gebruiken we om een ​​SQL-instructie te beëindigen de puntkomma (

Zodra dit is gebeurd, gaan we onze code invoeren in het zoekvak, laten we een codevoorbeeld bekijken:

 CREATE 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 = 'het aantal pagina's is te groot'; ELSE UPDATE boek SET page_count = page_count + param_pages WAAR isbn = param_isbn; SET param_message = 'succes'; STOP ALS; EINDE // 

Zoals we kunnen zien, is het niet erg moeilijk om erachter te komen wat dit doet SP, de eerste regel is vrij eenvoudig, we definiëren eenvoudig de invoer- en uitvoerparameters van de SP, dan beginnen we met BEGINNEN ons blok plaatsen we een IF ELSE voorwaarde waarin we elk van de invoerparameters evalueren, zodat we bij elke voorwaarde een actie uitvoeren, dan sluiten we de respectieve blokken van onze SP met ENDIF en END en we eindigen met // wat is onze aangepaste scheidingsteken.
De opgeslagen procedure testen
Eenmaal gedefinieerd, gaan we onze . testen SP, hiervoor zullen we een aantal elementen zien die we niet hadden gebruikt, laten we eerst de code bekijken en dan de uitleg:
bel add_page ('1-234567-22-0', 4, @message);
SELECTEER @bericht;
Eens kijken, we gebruiken de TELEFOONGESPREK om onze SP aan te roepen, dan geven we twee parameters door die de SP Ik wachtte en uiteindelijk gebruiken we een MySQL-variabele om het antwoord te ontvangen, de tweede regel raadplegen we deze variabele eenvoudig om de waarde ervan te verkrijgen; Zoals we kunnen zien, is het vrij eenvoudig om hiermee te werken.
De opgeslagen procedure manipuleren
De SP Het wordt opgeslagen in de database, maar het is niet gebonden aan een specifieke tabel, dus om ze te openen gaan we eerst naar de databaseweergave in phpMyAdmin, op de structuurpagina hebben we een sectie met de naam routines.

Wanneer we op het bewerkingspictogram klikken, zien we dat de SP-code die het ons laat zien, iets anders is dan de onze, laten we eens kijken wat er verschijnt:
 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 = param_message het aantal pagina's is te groot '; ELSE UPDATE boek SET page_count = page_count + param_pages WAAR isbn = param_isbn; SET param_message = 'succes'; STOP ALS; 

De SP We kunnen ze niet wijzigen, dus wanneer we proberen het te bewerken, is de eerste instructie de DROP van de SP, op deze manier elimineren we het om het opnieuw te maken, in de volgende regels genereert het ook een regel waarin de opgegeven gebruiker wordt gespecificeerd . is de maker van genoemde SP; zodra de wijzigingen zijn aangebracht door te klikken op Gaan we maken onze aangepaste SP en deze wordt opgeslagen in de database.
Hiermee sluiten we de tutorial af, zoals we zien de Opgeslagen procedures Ze zijn heel handig voor het opslaan van instructieblokken die we op elk moment kunnen aanroepen, wat ons de kracht geeft van subroutines binnen de database.Vond je deze tutorial leuk en hielp je hem?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave