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
Detailliertes Download-, Installations- und Konfi...
Inhaltsverzeichnis Vorwort Was sind Metadaten? Ad...
Schauen wir uns zunächst die relativen Längeneinh...
Ich habe kürzlich an einer Kommentarfunktion gear...
Inhaltsverzeichnis Vorwort Daten simulieren Zusam...
In diesem Artikel wird der spezifische Code für J...
Öffentlicher Name der Seite: #wrapper - - Der äuß...
Port 80 ist ebenfalls konfiguriert. Geben Sie zun...
Vorwort Nur Innodb- und MyISAM-Speicher-Engines k...
Nginx kann nicht nur Versionsinformationen verber...
Heute habe ich einen kleinen Vorgeschmack auf IE8...
Inhaltsverzeichnis 1. Was ist Ts 2. Grundlegende ...
1. Szenariodarstellung Das Tomcat-Protokoll melde...
1. Überprüfen Sie, ob das vorhandene Nginx IPv6 u...
Inhaltsverzeichnis Hintergrund Hauptinhalt 1. Kom...