Gespeicherte Prozeduren verwenden
Die Verwendung gespeicherter Prozeduren erfordert das Wissen, wie man sie ausführt (ausführt). Die Ausführung einer gespeicherten Prozedur kommt weitaus häufiger vor als ihre Definition, daher beginnen wir mit der Ausführung einer gespeicherten Prozedur. Anschließend führt in die Erstellung und Verwendung gespeicherter Prozeduren ein.
Eine gespeicherte Prozedur ausführen
MySQL nennt die Ausführung einer gespeicherten Prozedur einen Aufruf, also die Anweisung, die MySQL zum Ausführen einer gespeicherten Prozedur verwendet ist ANRUF. CALL akzeptiert den Namen der gespeicherten Prozedur und alle Parameter, die an sie übergeben werden müssen. Schauen Sie sich das folgende Beispiel an:
Eingabe:
call productpricing(@pricelow,@pricehigh,@priceaverage);
Nach dem Login kopieren
Analyse: Darin wird eine gespeicherte Prozedur namens „productpricing“ ausgeführt, die den Mindest-, Höchst- und Durchschnittspreis berechnet und zurückgibt des Produkts.
Eine gespeicherte Prozedur kann Ergebnisse anzeigen oder auch nicht, wie später beschrieben.
Gespeicherte Prozeduren erstellen
Wie bereits erwähnt, ist das Schreiben gespeicherter Prozeduren keine triviale Angelegenheit. Um Ihnen eine Vorstellung von diesem Prozess zu geben, betrachten Sie ein Beispiel – eine gespeicherte Prozedur, die den Durchschnittspreis eines Produkts zurückgibt. Hier ist der Code:
Eingabe:
create procedure productpricing() begin select avg(prod_price) as priceaverage from products;end;
Nach dem Login kopieren
Analyse: Wir werden die erste und letzte Aussage später vorstellen. Diese gespeicherte Prozedur trägt den Namen „productpricing“ und wird mit der Anweisung CREATE PROCEDURE „productpricing()“ definiert. Wenn die gespeicherte Prozedur Parameter akzeptiert, werden diese in () aufgezählt. Diese gespeicherte Prozedur hat keine Parameter, aber die folgende () ist dennoch erforderlich. Die BEGIN- und END-Anweisungen werden verwendet, um den Hauptteil der gespeicherten Prozedur zu qualifizieren, der selbst nur eine einfache SELECT-Anweisung ist (unter Verwendung der Funktion Avg()).
Während MySQL diesen Code verarbeitet, erstellt es eine neue gespeicherte Prozedur „product-pricing“. Es werden keine Daten zurückgegeben, da dieser Code die gespeicherte Prozedur nicht aufruft; sie wird lediglich für die spätere Verwendung erstellt.
Trennzeichen für den MySQL-Befehlszeilen-Client Wenn Sie das MySQL-Befehlszeilenprogramm verwenden, sollten Sie diese Beschreibung sorgfältig lesen.
Das standardmäßige Trennzeichen für MySQL-Anweisungen ist ; (wie Sie bereits in den bisher verwendeten MySQL-Anweisungen gesehen haben). Das MySQL-Befehlszeilenprogramm verwendet auch ; als Anweisungstrennzeichen. Wenn ein Befehlszeilenprogramm ;-Zeichen innerhalb der gespeicherten Prozedur selbst interpretieren würde, würden sie nicht als Komponenten der gespeicherten Prozedur enden, was zu einem Syntaxfehler im SQL innerhalb der gespeicherten Prozedur führen würde.
Die Lösung besteht darin, das Anweisungstrennzeichen des Befehlszeilen-Dienstprogramms vorübergehend wie folgt zu ändern:
delimiter//
create procedure productpricing()
begin
select avg(prod_price) as priceaverage from products;
end //
delimiter;
Nach dem Login kopieren
wobei DELIMITER // das Befehlszeilen-Dienstprogramm anweist, // als neue Anweisung zu verwenden. Wie für die Wenn Sie das Endtrennzeichen verwenden, können Sie sehen, dass END, das das Ende der gespeicherten Prozedur markiert, als END// und nicht als END; definiert ist. Auf diese Weise bleibt das ; im Hauptteil der gespeicherten Prozedur intakt und wird korrekt an die Datenbank-Engine übergeben. Um schließlich zum ursprünglichen Anweisungstrennzeichen zurückzukehren, verwenden Sie DELIMITER ;. Als Anweisungstrennzeichen kann jedes beliebige Zeichen außer dem Symbol verwendet werden.
Wenn Sie das MySQL-Befehlszeilenprogramm verwenden, denken Sie bitte beim Lesen dieses Kapitels daran.
Wie nutzt man diese gespeicherte Prozedur? Wie unten gezeigt:
Eingabe:
call productpricing();
Nach dem Login kopieren
Ausgabe:
Analyse: CALL productpricing(); Führen Sie den soeben erstellten Speicher aus verarbeiten und die zurückgegebenen Ergebnisse anzeigen. Da eine gespeicherte Prozedur eigentlich eine Funktion ist, ist das Symbol () nach dem Namen der gespeicherten Prozedur erforderlich (auch wenn keine Parameter übergeben werden).
Das obige ist der detaillierte Inhalt vonTutorial zur Verwendung, Ausführung und Erstellung gespeicherter MySQL-Prozeduren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!