MySQL ist ein beliebtes relationales Open-Source-Datenbankverwaltungssystem. Mit MySQL können Sie Datenbanken erstellen und verwalten, um große Datenmengen zu speichern und darauf zuzugreifen. Gespeicherte Prozeduren sind in einer Datenbank gespeicherte Codeblöcke, die es Ihnen ermöglichen, durch ihren Aufruf allgemeine Vorgänge auszuführen. Beim Entwickeln und Debuggen gespeicherter Prozeduren können einige Probleme und Fehler auftreten. In diesem Artikel erfahren Sie, wie Sie gespeicherte MySQL-Prozeduren debuggen.
- MySQL-Debugger für gespeicherte Prozeduren aktivieren
Bevor Sie gespeicherte Prozeduren debuggen, müssen Sie den MySQL-Debugger für gespeicherte Prozeduren aktivieren. Dies kann erreicht werden, indem die folgenden Parameter in der MySQL-Konfigurationsdatei festgelegt werden:
[mysqld]
...
# Enable stored procedure debugging
debugger=1
Nach dem Login kopieren
Nach dem Festlegen der Datei muss MySQL neu gestartet werden, damit die Änderungen wirksam werden.
- Verwenden eines Debuggers
In MySQL gibt es zwei Haupttypen von Debuggern: Einzelschritt- und Nichtschritt-Debugger. Das Debuggen in einem Schritt ist die einfachste Möglichkeit, eine gespeicherte Prozedur Zeile für Zeile auszuführen und dabei die Ausführung jeder Anweisung Schritt für Schritt zu verfolgen. Beim stufenlosen Debuggen handelt es sich um eine Methode zum Ausführen von Haltepunkten während der Ausführung einer gespeicherten Prozedur. Beide Debugger werden im Folgenden ausführlich beschrieben.
- Einzelschritt-Debugging
Einzelschritt-Debugging ist eine Methode zum zeilenweisen Ausführen einer gespeicherten Prozedur. Es ermöglicht Ihnen, Ihren Code vor jeder Anweisung anzuhalten und zu überprüfen. Sie können den Einzelschritt-Debugger mit den folgenden Schritten aktivieren und verwenden:
- Definieren Sie eine gespeicherte Prozedur
Zuerst müssen Sie eine definieren Gespeicherte Prozedur, um zu demonstrieren, wie ein einstufiges Debuggen durchgeführt wird. Das Folgende ist eine einfache gespeicherte Prozedur:
DELIMITER $$
CREATE PROCEDURE simple_addition(i INT, j INT)
BEGIN
DECLARE result INT;
SET result = i + j;
SELECT result;
END$$
DELIMITER ;
Nach dem Login kopieren
- Einzelschritt-Debugger aktivieren
Nachdem Sie die gespeicherte Prozedur definiert haben, müssen Sie die einzelne aktivieren -Step-Debugger. Sie können die folgende Anweisung verwenden:
SET @@DEBUG=1;
Nach dem Login kopieren
- Debugger starten
Als nächstes müssen Sie der gespeicherten Prozedur das Schlüsselwort „debug“ hinzufügen call-Anweisung. Starten Sie den Debugger:
CALL simple_addition(20, 30) debug;
Nach dem Login kopieren
Nach dem Login kopieren
Nach der Ausführung dieser Anweisung unterbricht MySQL die Ausführung und übergibt die Kontrolle an den Einzelschritt-Debugger.
- Verwenden des Einzelschritt-Debuggers
Im Einzelschritt-Debugger können Sie die folgenden Befehle verwenden, um die Ausführung Ihres Codes zu steuern : #🎜🎜 #
c: Führen Sie die gespeicherte Prozedur aus, bis die Ausführung abgeschlossen ist oder auf einen Haltepunkt trifft - s: Führen Sie den Code der gespeicherten Prozedur Zeile für Zeile aus
- # 🎜🎜#n: Als nächstes ausführen Eine Codezeile, die keine Unterroutine oder Funktion eingibt
- p Ausdruck: druckt den Wert eines Werts oder Ausdrucks
- l: listet die auf Code der aktuellen Funktion oder gespeicherten Prozedur
- b: Setzen Sie einen Haltepunkt in der aktuellen Zeile
- Hier ist ein Beispiel für die Verwendung des Einzelschritt-Debuggers: #🎜 🎜#
#🎜 🎜#Führen Sie die gespeicherte Prozedur aus und verwenden Sie das Schlüsselwort debug, um den Einzelschritt-Debugger zu aktivieren:
CALL simple_addition(20, 30) debug;
Nach dem Login kopieren
Nach dem Login kopieren
- Führen Sie den Befehl „s“ aus um den Code nach Bedarf Zeile für Zeile auszuführen.
Geben Sie beim Ausführen einer Zeile „p result“ ein, um die aktuellen Daten abzurufen.
- Führen Sie den Befehl „s“ aus, um mit der Ausführung des Codes fortzufahren.
- Nicht-Einzelschritt-Debugging
- Nicht-Einzelschritt-Debugging ist eine Methode zum Ausführen von Haltepunkten während der Ausführung einer gespeicherten Prozedur. Mit den folgenden Schritten können Sie den Nicht-Einzelschritt-Debugger aktivieren und verwenden:
-
Definieren Sie eine gespeicherte Prozedur
Ebenso benötigen Sie um zuerst eine gespeicherte Prozedur zu definieren. Demonstriert, wie man schrittloses Debuggen durchführt. Das Folgende ist eine einfache gespeicherte Prozedur: DELIMITER $$
CREATE PROCEDURE simple_subtraction(i INT, j INT)
BEGIN
DECLARE result INT;
SET result = i - j;
SELECT result;
END$$
DELIMITER ;
Nach dem Login kopieren
Nicht-Einzelschritt-Debugger aktivieren
Sie können den folgenden Befehl verwenden, um den Nicht-Einzelschritt-Debugger zu aktivieren -Einzelschritt-Debugger: CALL simple_subtraction(20, 30) debug_on_break;
Nach dem Login kopieren
Wenn beim Ausführen einer gespeicherten Prozedur ein Haltepunkt auftritt, stoppt MySQL automatisch die Ausführung.
Non-Stepping-Debugging verwenden
Sobald der Non-Stepping-Debugger aktiviert ist, können Sie die folgenden Befehle verwenden, um die Ausführung Ihres zu steuern Code:# 🎜🎜#- c: Führen Sie die gespeicherte Prozedur aus, bis die Ausführung abgeschlossen ist oder ein Haltepunkt gefunden wird
b: Setzen Sie einen Haltepunkt in der aktuellen Zeile
r: Starten Sie die gespeicherte Prozedur neu. - p-Ausdruck: Drucken Sie den Wert oder Wert des Ausdrucks.
-
- Hier ist ein Beispiel mit einem Nicht-Single -Schritt-Debugger: #🎜🎜 #
- Führen Sie die gespeicherte Prozedur aus und setzen Sie einen Haltepunkt in Zeile 3:
CALL simple_subtraction(20, 30) debug_on_break(3);
Nach dem Login kopieren
Führen Sie die gespeicherte Prozedur aus bis Es wurde ein Haltepunkt gefunden:# 🎜🎜#
c;
Nach dem Login kopieren
- Drucken Sie den Wert der Variable „result“ aus:
p result;
Nach dem Login kopieren
- Löschen Breakpoint:#🎜🎜 ## 🎜🎜##
b -3;
Nach dem Login kopieren
#🎜🎜 ## 🎜🎜#Start gespeicherte Prozedur:#🎜🎜 ## 🎜🎜#r;
Nach dem Login kopieren
#🎜🎜 ## 🎜🎜#SUMPLY#🎜🎜 ## 🎜🎜 ## 🎜🎜#MySQL bietet mehrere Möglichkeiten zum Debuggen gespeicherter Prozeduren, einschließlich Einzelschritt- und Nichtschritt-Methoden. Wenn Sie diese Debugger verwenden, können Sie verschiedene Befehle verwenden, um die Ausführung Ihres Codes zu steuern und die Werte von Variablen und Ausdrücken anzuzeigen. Wenn Sie eine komplexe gespeicherte Prozedur entwickeln, können diese Debugger sehr nützliche Werkzeuge sein.
Das obige ist der detaillierte Inhalt vonSo debuggen Sie gespeicherte MySQL-Prozeduren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!