Heim >Datenbank >MySQL-Tutorial >So debuggen Sie gespeicherte MySQL-Prozeduren

So debuggen Sie gespeicherte MySQL-Prozeduren

PHPz
PHPzOriginal
2023-04-20 10:06:421918Durchsuche

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.

  1. 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 Festlegen der Datei muss MySQL neu gestartet werden, damit die Änderungen wirksam werden.

  1. 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.

  1. 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:

  1. 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 ;
  1. 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;
  1. 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 der Ausführung dieser Anweisung unterbricht MySQL die Ausführung und übergibt die Kontrolle an den Einzelschritt-Debugger.

  1. 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;
  1. 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.
  1. Führen Sie den Befehl „s“ aus, um mit der Ausführung des Codes fortzufahren.
  2. Nicht-Einzelschritt-Debugging
  3. 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:
  1. DELIMITER $$
    CREATE PROCEDURE simple_subtraction(i INT, j INT)
    BEGIN
        DECLARE result INT;
        SET result = i - j;
        SELECT result;
    END$$
    DELIMITER ;
Nicht-Einzelschritt-Debugger aktivieren

    Sie können den folgenden Befehl verwenden, um den Nicht-Einzelschritt-Debugger zu aktivieren -Einzelschritt-Debugger:
  1. CALL simple_subtraction(20, 30) debug_on_break;
  2. 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:# 🎜🎜#
  1. 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);

Führen Sie die gespeicherte Prozedur aus bis Es wurde ein Haltepunkt gefunden:# 🎜🎜#
    c;
  1. Drucken Sie den Wert der Variable „result“ aus:
    p result;
  1. Löschen Breakpoint:#🎜🎜 ## 🎜🎜##
    b -3;
    #🎜🎜 ## 🎜🎜#Start gespeicherte Prozedur:#🎜🎜 ## 🎜🎜#
    r;
    #🎜🎜 ## 🎜🎜#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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn