In den meisten Fällen speichern wir bei der Ausführung von SQL -Abfragen mithilfe von MySQL Shell oder MySQL Workbench die Ergebnisse nicht, obwohl wir über die Funktionen verfügen, um die vom Server verarbeiteten Ergebnisse mithilfe einer gespeicherten Prozedur zu speichern.
In diesem Tutorial werde ich keine gespeicherten Verfahren, Funktionen oder Auslöser diskutieren. Stattdessen werde ich einfach dazu neigen, Ihnen zu zeigen, wie Sie mit MySQL Cursors die Ergebnisse in den gespeicherten Prozeduren ausführen können.
Bevor wir anfangen, einen Cursor mit Beispielen zu erstellen und zu verwenden, nehmen wir uns einen Moment Zeit, um ein paar wichtige Punkte über einen Cursor zu besprechen, den Sie kennen sollten:
Merkmale eines MySQL Cursors
Nachdem wir nun wissen, was ein Cursor bedeutet, können wir veranschaulichen, wie es mit Beispielen in der realen Welt funktioniert:
Grundnutzung
Die allgemeine Syntax, um einen Cursor in MySQL zu deklarieren, ist unkompliziert. Wir beginnen mit dem Declare -Schlüsselwort, wie in der folgenden Beispielabfrage gezeigt:
Wie man einen Cursor deklariert
Deklariere cursor_name cursor für select_expression;Der Cursor_Name ist der Name, der dem Cursor während der Deklaration gegeben wurde. Beachten Sie, dass die Erklärung eines Cursors nach deklarierten Variablen erfolgen sollte, um zu verhindern, dass MySQL zu Fehlern führt.
Als nächstes befindet sich die Select_expression, die die mit dem Cursor zugeordnete SELECT -Anweisung speichert.
Wie man einen Cursor öffnet
Sobald wir einen Cursor deklariert haben und MySQL sich bewusst ist, dass der Cursor existiert, können wir anfangen, ihn zu verwenden, wodurch der Cursor geöffnet werden muss.
Die allgemeine Syntax zum Öffnen eines Cursors ist wie in der folgenden Abfrage gezeigt:
Öffnen cursor_name;Dieser Befehl öffnet die von seinem Namen verwiesenen Cursors, und man kann damit beginnen.
So rufen Sie Daten ab
Mit dem Öffnen des Cursors können Sie die Informationen, die entweder in einer Prozedur, einer Funktion oder einem Auslöser gespeichert sind.
Die allgemeine Syntax zum Abrufen von Daten unter Verwendung eines Cursors ist wie gezeigt:
Fetch cursor_name in variablen;NOTIZ: Stellen Sie, wie bereits erwähnt, sicher, dass der Cursor verwendet wird, nachdem die Variablen deklariert wurden, um Fehler zu vermeiden.
Wie man einen Cursor schließt und freigibt
Sobald die Operationen, die den definierten Cursor erfordern.
Sobald ein Cursor geschlossen wurde, muss ein Benutzer den Cursor mithilfe der offenen Schlüsselwörter (siehe oben) erneut eröffnen.
Sie müssen den Cursor nach der engen Erklärung nicht deklarieren.
Die allgemeine Syntax zum Schließen eines Cursors ist wie in der folgenden Abfrage gezeigt:
Cursor_Name schließen;Fehlerbehandlung
MySQL Cursor funktioniert, indem die nächste Zeile im Ergebnissatz rekursiv gelesen wird. Wenn die nächste Zeile nicht verfügbar ist, schließt der Cursor die Daten, sofern nicht angegeben, sofern nicht angegeben. Dies kann ein Problem sein, insbesondere nachdem der Cursor das Ende des Ergebnisses erreicht hat.
Als Lösung wird ein nicht gefundener Handler definiert. Dies gibt an, dass die Maßnahmen ergriffen werden sollen, wenn die nächste Reihe nicht gefunden wird.
Die allgemeine Syntax für die Fehlerbehandlung bei der Verwendung eines Cursors lautet:
Declare Weitere Handler nicht gefundener Set terate = true;Der Beendigungswert ist eine Variable, mit der angegeben wird, dass der Cursor das Ende des Ergebniss erreicht hat. Der Variablenname kann ein beliebiger Name sein, so lange er für die MySQL -Variable -Benennungskonvention passt.
NOTIZ: Wie alle Variablen, die in einem Cursor verwendet werden, muss es definiert werden, bevor es im Cursor verwendet wird.
Beispiel Anwendungsfall
Lassen Sie uns einen Cursor erstellen, der die in der Kundentabelle der Sakila -Beispieldatenbank verfügbaren Kunden -E -Mails sammelt.
Die Ressource zum Herunterladen und Installieren der Sakila -Datenbank finden Sie unten:
https: // dev.Mysql.com/doc/sakila/en/
Das Folgende zeigt eine Prozedur, bei der ein Cursor zum Abrufen von E -Mails verwendet wird:
Benutze Sakila;Sobald die Abfrage ausgeführt wird, erhalten Sie eine Ausgabe, wie unten gezeigt:
Abschluss
In diesem Tutorial gingen wir mit den MySQL Cursors, um die im Ergebnismengen gespeicherten Daten zu analysieren. Betrachten Sie die Dokumentation, um die Implementierung der Cursors zu beherrschen.