Heim  >  Artikel  >  Datenbank  >  So debuggen Sie gespeicherte Prozeduren in MySQL

So debuggen Sie gespeicherte Prozeduren in MySQL

coldplay.xixi
coldplay.xixiOriginal
2020-08-25 10:15:3611933Durchsuche

So debuggen Sie gespeicherte Prozeduren in MySQL: 1. Verwenden Sie die Anweisung „CREATE TEMPORARY TABLE“, um eine temporäre Tabelle zum Aufzeichnen des Debugging-Prozesses zu erstellen. 2. Fügen Sie die Anweisung „select @xxx“ zur gespeicherten Prozedur hinzu console , überprüfen Sie die Ergebnisse in der Konsole und ändern Sie den Code entsprechend den Ausgabeergebnissen.

So debuggen Sie gespeicherte Prozeduren in MySQL

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Mysql-Debugging-Methode für gespeicherte Prozeduren:

Rufen Sie die gespeicherte Prozedur in Navicat auf 

1. Schreiben Sie eine Anweisung zum Aufrufen

call p_next_id('t_factory',2,'0',@result); -- 上面的存储过程含有四个参数,所以这里调用的时候,也需要传递4个参数:输入参数填写值,输出参数用变量表示@result
select @result; -- 这句话是在控制台显示变量值

2. Klicken Sie auf „Direkt ausführen“ und geben Sie sie ein -up-Eingabefeld:

't_factory',2,'0',@result

Verfolgen (Debuggen) der Ausführungsschritte gespeicherter Prozeduren

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

    Verwenden Erstellen Sie mit der Anweisung „CREATE TEMPORARY TABLE“ eine temporäre Tabelle, die zum Aufzeichnen des Debugging-Prozesses verwendet wird. Fügen Sie direkt in der gespeicherten Prozedur „select @xxx“ hinzu. Sehen Sie sich die Ergebnisse auf der Konsole an und ändern Sie den Code basierend auf dem Ausgabeergebnisse:
  • Zum Beispiel speichere ich die oben genannten. Fügen Sie dabei einige Abfrageanweisungen hinzu (beachten Sie die roten Anweisungen unten)
  • CREATE PROCEDURE `p_next_id`(kind_name VARCHAR(30), i_length int,currentSeqNo VARCHAR(3),OUT o_result INT)
    BEGIN 
         SET @a= NULL;
         SET @b= NULL;
         SELECT id INTO @a FROM t_seq WHERE number= currentSeqNo and length= i_length ;
       SELECT @a;     
         IF (@a is null ) THEN
                select min(id) into @a FROM t_seq where length = i_length;
                select number  INTO @b FROM t_seq WHERE id = @a;
           select @b;
         ELSE
            select number  INTO @b FROM t_seq WHERE id = @a+1;        
         END IF;        
         SELECT @b INTO o_result;     
    END

    [Verwandte Lernempfehlungen:

    MySQL-Lernen
  • ]

Das obige ist der detaillierte Inhalt vonSo debuggen Sie gespeicherte Prozeduren in MySQL. 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