PhpMyAdmin – Gespeicherte Prozeduren

Die gespeicherten Prozeduren sind Blöcke von SQL- Code, die in der Datenbank gespeichert sind und dazu verwendet werden, eine Reihe von Aktionen auszuführen, die über die gespeicherte Abfrage hinausgehen. Um sie aufzurufen, können wir sie mit der CALL- Anweisung ausführen und sogar Parameter übergeben sagte gespeicherte Prozeduren .

Gespeicherte Prozedur erstellen

Um mit der Erstellung einer gespeicherten Prozedur (Stored Procedure, SP) fortfahren zu können, müssen wir zunächst über die Benutzerberechtigungen CREATE ROUTINE und ALTER ROUTINE verfügen . Für den Benutzer, mit dem wir sie in der Datenbank erstellen, ist jedoch auch die EXECUTE- Berechtigung erforderlich wird automatisch dem Ersteller eines SP zugewiesen.
Um einen SP zu erstellen, gehen Sie zuerst in das Abfragefeld. In der Regel beenden Sie eine SQL-Anweisung mit dem Semikolon ( ;) In diesem Fall werden wir diesen Begrenzer für das folgende (//) ändern, da der SP eine große SQL-Anweisung ist und mehrere enthält, sodass wir den Inhalt nicht mit dem Semikolon abschließen können ( ;)

gespeichert-procedure.jpg

Sobald dies erledigt ist, geben wir unseren Code in das Abfragefeld ein. Sehen wir uns ein Codebeispiel an:

 CREATE PROCEDURE `add_page` (IN param_isbn VARCHAR (25), IN param_pages INT, OUT param_message VARCHAR (100) BEGINNEN WENN param_pages> 100 DANN SET param_message = 'die Anzahl der Seiten ist zu groß'; ELSE UPDATE Buch SET page_count = page_count + param_pages WO isbn = param_isbn; SET param_message = 'Erfolg'; END IF; ENDE // 

Wie wir sehen, ist es nicht sehr schwierig herauszufinden, was dieser SP tut . Die erste Zeile ist recht einfach. Wir definieren einfach die Eingabe- und Ausgabeparameter des SP. Beginnen Sie dann mit unserem Block und setzen Sie eine IF ELSE-Bedingung, unter der wir jeden der Parameter von auswerten Eingabe, so dass wir bei jeder Bedingung, die wir ausführen, die entsprechenden Blöcke unseres SP mit ENDIF und END schließen und mit // enden, das ist unser benutzerdefiniertes Trennzeichen.

See also  Verwalten der Dateifilterung in Windows Server 2016

Testen der gespeicherten Prozedur

Sobald dies definiert ist, werden wir die Tests unseres SP durchführen . Dazu werden wir einige Elemente sehen, die wir nicht verwendet haben. Schauen wir uns zuerst den Code und dann die Erklärung an:
rufen Sie add_page (‘1-234567-22-0’, 4, @message) auf;
SELECT @message;

Mal sehen, wir verwenden den CALL , um unseren SP aufzurufen, dann übergeben wir zwei Parameter, auf die der SP gewartet hat, und schließlich verwenden wir eine MySQL-Variable, um die Antwort zu erhalten. In der zweiten Zeile überprüfen wir einfach diese Variable, um ihren Wert zu erhalten. wie wir sehen, ist es ziemlich einfach, damit zu arbeiten.

Manipulieren der gespeicherten Prozedur

Der SP ist in der Datenbank gespeichert, jedoch nicht an eine bestimmte Tabelle gebunden. Um darauf zuzugreifen, rufen wir zunächst die Datenbankansicht in phpMyAdmin auf. Auf der Strukturseite befindet sich ein Abschnitt namens Routinen .

Stored Procedures_2.jpg

Wenn wir auf das Bearbeitungssymbol klicken, sehen wir, dass der SP-Code, der uns anzeigt, etwas anderes ist als der unsere. Sehen wir uns an, wie er aussieht:

 DROP-VERFAHREN `add_page` // CREATE DEFINER = `marc` @`% `PROCEDURE` add_page` (IN param_isbn VARCHAR (25), IN param_pages INT, OUT param_message VARCHAR (100)) BEGINNEN WENN param_pages> 100 DANN SET param_message = 'die Anzahl der Seiten ist zu groß'; ELSE UPDATE Buch SET page_count = page_count + param_pages WO isbn = param_isbn; SET param_message = 'Erfolg'; END IF; 

Wir können den SP nicht ändern. Wenn wir also versuchen, ihn zu bearbeiten, ist der erste Befehl der DROP des SP. Auf diese Weise entfernen wir ihn, um ihn neu zu erstellen. In den folgenden Zeilen wird auch eine Zeile generiert, in der der Benutzer, der der Schöpfer des SP ist; Sobald die Änderungen durch Klicken auf Los vorgenommen wurden , erstellen wir unseren modifizierten SP und speichern ihn in der Datenbank.

See also  Entwicklung plattformübergreifender mobiler Anwendungen mit Apache Cordova

Hiermit schließen wir das Lernprogramm ab, da die gespeicherten Prozeduren sehr nützlich sind, um Anweisungsblöcke zu speichern, die wir jederzeit aufrufen können, wodurch wir die Leistung der Unterroutinen in der Datenbank erhalten.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *