MySQL erstellt einen Cursor
Cursoren werden mit der DECLARE-Anweisung erstellt. DECLARE benennt den Cursor und definiert die entsprechende SELECT-Anweisung mit WHERE und anderen Klauseln nach Bedarf. Die folgende Anweisung definiert beispielsweise einen Cursor mit dem Namen „ordernumbers“ mithilfe einer SELECT-Anweisung, die alle Bestellungen abruft.
Eingabe:
create procedure processorders() begin declare ordernumbers cursor for select order_num from orders; end;
Analyse: Diese gespeicherte Prozedur macht nicht viel. Die DECLARE-Anweisung wird verwendet, um den Cursor zu definieren und zu benennen, hier sind es Bestellnummern. Nachdem die Verarbeitung der gespeicherten Prozedur abgeschlossen ist, verschwindet der Cursor (da er auf die gespeicherte Prozedur beschränkt ist). Nachdem Sie den Cursor definiert haben, können Sie ihn öffnen.
MySQL öffnet und schließt Cursor
Der Cursor wird mit der OPEN CURSOR-Anweisung geöffnet:
Eingabe:
open ordernumbers;
Analyse: Die Abfrage wird ausgeführt, während die OPEN-Anweisung verarbeitet wird, und die abgerufenen Daten werden zum Durchsuchen und Scrollen gespeichert.
Nachdem die Cursorverarbeitung abgeschlossen ist, sollte die folgende Anweisung verwendet werden, um den Cursor zu schließen:
Eingabe:
close ordernumbers;
Analyse: CLOSE gibt den gesamten internen Speicher und die verwendeten Ressourcen frei durch den Cursor, daher sollte jeder Cursor geschlossen werden, wenn er nicht mehr benötigt wird.
Nachdem ein Cursor geschlossen wurde, kann er nicht mehr verwendet werden, ohne ihn erneut zu öffnen. Es ist jedoch nicht erforderlich, ihn erneut zu deklarieren, um einen deklarierten Cursor zu verwenden. Öffnen Sie ihn einfach mit der OPEN-Anweisung.
Implizites Schließen Wenn Sie den Cursor nicht explizit schließen, schließt MySQL ihn automatisch, wenn die END-Anweisung erreicht wird.
Das Folgende ist eine modifizierte Version des vorherigen Beispiels:
Eingabe:
create procedure processorders() BEGIN -- declare the cursor declare ordernumbers cursor for select order_num from orders; -- Open the cursor Open ordernumbers; -- close the cursor close ordernumbers; END;
Analyse: Diese gespeicherte Prozedur deklariert, öffnet und schließt einen Cursor. Mit den abgerufenen Daten wird jedoch nichts gemacht.
Das obige ist der detaillierte Inhalt vonTutorial zum Erstellen, Öffnen und Schließen von Cursorn in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!