CursorEin Cursor ist eine Methode zum Anzeigen oder Verarbeiten von Daten in einem Ergebnissatz. Cursor bieten die Möglichkeit, vorwärts oder rückwärts durch die Daten in einem Ergebnissatz zu navigieren, jeweils eine oder mehrere Zeilen gleichzeitig. So verwenden Sie den Cursor Definieren Sie einen Cursor: Deklarieren Sie den Cursornamen CURSOR für die Tabelle; (die Tabelle kann auch die Ergebnismenge der Auswahl sein) BEGINNEN #Benutzerdefinierte Variablen deklarieren declare c_stgId int; Deklarieren Sie c_stgName varchar (50); #Deklarieren Sie die Cursor-Endvariable. Deklaration fertig. INT DEFAULT 0; #Deklarieren Sie den Cursor cr und die endgültige Verarbeitungsmethode, nachdem der Cursor den Ergebnisset gelesen hat. Deklarieren Sie den cr-Cursor, um Name, StgId aus StgSummary-Limit 3 auszuwählen. Deklarieren Sie den Continue-Handler für nicht gefundenen Satz „Done“ = 1; # Cursor öffnen open cr; # Schleife readLoop: LOOP # Den Wert im Cursor abrufen und ihn der Variablen fetch cr into c_stgName,c_stgId; zuweisen. # Bestimmen Sie, ob der Cursor das Ende erreicht hat. Wenn ja, beenden Sie den Cursor. # Notieren Sie dieses Urteil WENN fertig = 1 DANN LEAVE readLoop; ENDE, WENN; Wählen Sie c_stgName,c_stgId; ENDE DER SCHLEIFE Leseschleife; -- Schließen Sie den Cursor close cr; ENDE Hinweis zur Variablendeklarationsanweisung:
Hinweise zur benutzerdefinierten Variablenbenennung: Der Name der benutzerdefinierten Variable darf nicht mit dem Namen des Cursor-Ergebnissatzfelds identisch sein. Wenn sie gleich sind, ist die Cursorzuweisung zur Variablen ungültig. Temporäre Tabellen Die temporäre Tabelle ist nur in der aktuellen Verbindung sichtbar. Wenn die Verbindung geschlossen wird, löscht MySQL die Tabelle automatisch und gibt den gesamten Speicherplatz frei. Daher können temporäre Tabellen mit demselben Namen in verschiedenen Verbindungen erstellt und Operationen an den zu dieser Verbindung gehörenden temporären Tabellen ausgeführt werden. Temporäre Tabelle erstellen StgSummary( Name VARCHAR(50) NOT NULL, StgId INT NICHT NULL STANDARD 0 ); Einschränkungen bei der Verwendung temporärer Tabellen
ALTER TABLE orig_name RENAME neuer_name;
Temporäre Tabelle löschen, falls vorhanden StgTempTable; Verwenden einer Cursorschleife zum Lesen temporärer Tabellendaten in einer gespeicherten ProzedurBEGINNEN ## Erstellen Sie eine temporäre Tabelle CREATE TEMPORARY TABLE falls nicht vorhanden StgSummary( Name VARCHAR(50) NOT NULL, StgId INT NICHT NULL STANDARD 0 ); TRUNCATE TABLE StgSummary; ## Temporäre Tabellendaten hinzufügen INSERT INTO StgSummary(Name,StgId) Wählen Sie „temporäre Daten“,1 BEGINNEN #Benutzerdefinierte Variable deklarieren c_stgId int; Deklarieren Sie c_stgName varchar (50); für erledigt erklären INT DEFAULT 0; Deklarieren Sie einen CR-Cursor, um Name, StgId aus StgSummary auszuwählen. ORDER BY StgId desc LIMIT 3; Deklarieren Sie den Continue-Handler für nicht gefundenen Satz „Done“ = 1; - Öffnen Sie den Cursor, open cr; testLoop:LOOP -- Holen Sie sich das Ergebnis fetch cr in c_stgName,c_stgId; WENN fertig = 1 DANN LEAVE testLoop; ENDE, WENN; Wählen Sie c_stgName,c_stgId; ENDE DER SCHLEIFE testLoop; -- Schließen Sie den Cursor, close cr; Ende; Temporäre Tabelle löschen, falls vorhanden StgSummary; Ende; Erstellen Sie zunächst eine temporäre Tabelle und definieren Sie dann den Cursor. Die gespeicherte Prozedur kann jedoch trotzdem nicht gespeichert werden. ZusammenfassenAls ich zuvor gespeicherte SQL Server-Prozeduren schrieb, achtete ich nicht besonders auf dieses Problem. Normalerweise definierte ich Variablen mitten im Programm, nahm MySQL als selbstverständlich hin und schrieb sie nachlässig, was schließlich zu einer Falle führte. Grammatikalisch besteht zwischen den beiden kaum ein Unterschied, dennoch fällt der Unterschied ziemlich plötzlich auf. Ich habe aber schon lange keine SQL-Anweisungen mehr geschrieben und bin daher etwas eingerostet. Besser ist es, den Abdruck schnell aufzuschreiben und zu vertiefen. Oben finden Sie Einzelheiten zur Verwendung der Cursorschleife zum Lesen temporärer Tabellen in gespeicherten MySQL-Prozeduren. Weitere Informationen zur MySQL-Cursorschleife zum Lesen temporärer Tabellen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der Rolle und des Prinzips des Schlüssels in Vue
>>: Verwenden Sie Docker, um den Kong-Clusterbetrieb aufzubauen
In diesem Artikelbeispiel wird der spezifische Co...
Designer müssen Psychologie verstehen, indem sie ...
Schauen Sie sich zunächst das Wirkungsdiagramm an...
In einer Tabelle können Sie die Farbe des oberen ...
In diesem Artikel wird der spezifische Code für J...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis WXS-Antwortereignis Plan A Sei...
Nach den Änderungen: innodb_buffer_pool_size=576M...
01. Kompilierungsoptionen und Kernelkompilierung ...
Schauen wir uns zunächst die offizielle MySQL-Dok...
1. Die Div-CSS-Maushandform ist Cursor:Zeiger; 2. ...
Alle Websites, ob offiziell, E-Commerce, soziale ...
Sophie Hardach Kai von Clyde Quay 37 Ost Seifenkis...
Vorwort MySQL unterstützt viele Arten von Tabelle...
In diesem Artikel wird der spezifische Code zur V...