Der einfachste Weg zum Debuggen gespeicherter Prozeduren in MySQL

Der einfachste Weg zum Debuggen gespeicherter Prozeduren in MySQL

Ein Kollege hat mir einmal gesagt, ich solle eine temporäre Tabelle verwenden, um variable Daten zum Anzeigen einzufügen, aber diese Methode ist zu umständlich und Mysql verfügt nicht über ein besseres Tool zum Debuggen gespeicherter Prozeduren. Ich habe heute gegoogelt und festgestellt, dass ich die Methode select + variable name zum Debuggen verwenden kann

Spezifische Methode:

Fügen Sie Ihrer gespeicherten Prozedur die folgende Anweisung hinzu:
Wählen Sie Variable1, Variable2 aus.

Geben Sie anschließend im mit MySQL mitgelieferten cmd-Programm „mysql>“ ein.
Rufen Sie den Namen Ihrer gespeicherten Prozedur auf (Eingabeparameter 1, @Ausgabeparameter). (Hinweis: Dies dient als Hilfe für neue Studierende: Wenn Ihre gespeicherte Prozedur Ausgabevariablen hat, müssen Sie nur @ und dann einen beliebigen Variablennamen hinzufügen.)
Sie werden feststellen, dass Ihr Variablenwert unter cmd gedruckt wurde. Einfach, oder? Haha, ich hoffe, das kann dir helfen.

Es gibt eine gespeicherte Prozedur wie folgt

PROZEDUR `p_next_id` ERSTELLEN (kind_name VARCHAR(30), i_length int, currentSeqNo VARCHAR(3), OUT o_result INT)
BEGINNEN 
     SET @a = NULL;
     SET @b = NULL;
     SELECT id INTO @a FROM t_seq WHERE Nummer= aktuelleSeqNr und Länge= i_Länge; WENN (@a ist null) DANN
            wähle min(id) in @a FROM t_seq, wobei Länge = i_Länge;
            Wähle eine Nummer in @b aus t_seq, wobei id = @a; sonst
        Wähle eine Nummer in @b aus t_seq, wobei id = @a+1 ist;        
     ENDE, WENN;        
     Wählen Sie @b in o_result aus.     
ENDE

Aufrufen gespeicherter Prozeduren in Navicat


Anweisungsaufruf schreiben
call p_next_id('t_factory',2,'0',@result); -- Die oben gespeicherte Prozedur enthält vier Parameter. Wenn Sie sie hier aufrufen, müssen Sie daher auch vier Parameter übergeben: Geben Sie den Wert des Eingabeparameters ein und verwenden Sie die Variable, um den Ausgabeparameter @result darzustellen.
select @result; – Dieser Satz zeigt den Variablenwert in der Konsole an
2. Fensterklick

Wenn Sie auf „Direkt ausführen“ klicken, geben Sie in das Popup-Eingabefeld Folgendes ein: „t_factory“, 2, „0“, @result

Nachverfolgen der Ausführungsschritte gespeicherter Prozeduren

MySQL verfügt im Gegensatz zu Oracle nicht über das Tool plsqldevelper zum Debuggen gespeicherter Prozeduren. Daher gibt es zwei einfache Möglichkeiten, den Ausführungsprozess zu verfolgen:

Verwenden Sie eine temporäre Tabelle, um den Debugvorgang aufzuzeichnen. Fügen Sie select @xxx direkt in die gespeicherte Prozedur ein und zeigen Sie die Ergebnisse in der Konsole an:
Als Beispiel füge ich der oben gespeicherten Prozedur einige Abfrageanweisungen hinzu (beachten Sie die roten Anweisungen unten).

PROZEDUR `p_next_id` ERSTELLEN (kind_name VARCHAR(30), i_length int, currentSeqNo VARCHAR(3), OUT o_result INT)
BEGINNEN 
     SET @a = NULL;
     SET @b = NULL;
     SELECT id INTO @a FROM t_seq WHERE Nummer= aktuelleSeqNr und Länge= i_Länge; SELECT @a;     
     WENN (@a ist null) DANN
            wähle min(id) in @a FROM t_seq, wobei Länge = i_Länge;
            Wähle eine Nummer in @b aus t_seq, wobei ID = @a ist; wähle @b;
     ANDERS
        Wähle eine Nummer in @b aus t_seq, wobei id = @a+1 ist;        
     ENDE, WENN;        
     Wählen Sie @b in o_result aus.     
ENDE

Dies ist das Ende dieses Artikels über die einfachste Methode zum Debuggen gespeicherter Prozeduren in MySQL. Weitere Informationen zum Debuggen gespeicherter Prozeduren in MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Definition und Zuweisung von Variablen in gespeicherten MySQL-Prozeduren
  • Detaillierte Erklärung der gespeicherten MySQL-Prozedur
  • Einführung in die Verwendung der Cursorschleife für gespeicherte Prozeduren in MySQL
  • Detaillierte Erläuterung der Anwendungsbeispiele für gespeicherte MySQL-Prozeduren
  • Einfaches Schreiben von gespeicherten MySQL-Prozeduren und -Funktionen
  • Beispiel für eine gespeicherte MySQL-Prozedur (einschließlich Transaktionen, Ausgabeparameter, verschachtelte Aufrufe)
  • Detaillierte Erläuterung der gespeicherten Prozeduren und Funktionen von MySql
  • MySQL-Abfragedatenbank - gespeicherte Prozeduren und Funktionsanweisungen
  • Einführung in MySQL-Import- und -Exportdatenbanken, Funktionen und gespeicherte Prozeduren
  • Beispielanalyse gespeicherter Prozeduren in MySQL und wie gespeicherte Prozeduren aufgerufen werden

<<:  Fallerklärung für den Nginx-Reverse-Proxy zu Go-FastDFS

>>:  Konfliktlösung bei gleichzeitiger Verwendung von Laufschrift und Flash auf einer Seite

Artikel empfehlen

getdata Tabelle Tabellendaten Join MySQL-Methode

öffentliche Funktion json_product_list($where, $o...

JavaScript realisiert den Drag-Effekt der Modalbox

Hier ist ein Fall des Ziehens einer modalen Box. ...

Vue3+TypeScript kapselt Axios und implementiert Anforderungsaufrufe

Auf keinen Fall. Es stellt sich heraus, dass es L...

MySQL-Variablendeklaration und Analyse gespeicherter Prozeduren

Deklarieren von Variablen Festlegen globaler Vari...

Anfänger lernen einige HTML-Tags (1)

Anfänger können HTML lernen, indem sie einige HTM...

So steuern Sie den Anteil untergeordneter Flex-Elemente auf der Hauptachse

Hintergrund Durch das flexible Layout wird eine e...

Detailliertes Tutorial zur Installation von mysql5.7.21 unter Windows

In diesem Artikel finden Sie das Installations-Tu...

Inspirierende Designbeispiele für glänzendes und schimmerndes Website-Design

Diese Sammlung zeigt eine Reihe herausragender und...

Beispiel für die Bereitstellung von MySQL auf Docker

Inhaltsverzeichnis 1 Was ist eine Container-Cloud...

So löschen Sie verstümmelte oder mit Sonderzeichen versehene Dateien in Linux

Aus Kodierungsgründen werden beim Hochladen oder ...

So verwenden Sie nginx, um eine angegebene Schnittstelle (URL) zu blockieren

1. Einleitung Manchmal müssen Sie eine Servicesch...