Während das Einfügen von Variablenwerten in eine Debug-Tabelle eine einfache Methode ist, gibt es effizientere Möglichkeiten, gespeicherte MySQL-Prozeduren zu debuggen. In diesem Artikel wird ein alternativer Ansatz untersucht, der ein benutzerdefiniertes Verfahren zum Protokollieren von Debug-Meldungen in der Konsole nutzt.
Mit dem unten dargestellten Verfahren debug_msg können Sie Debug-Meldungen bedingt an die Konsole ausgeben:
<code class="sql">DELIMITER $$ DROP PROCEDURE IF EXISTS `debug_msg`$$ DROP PROCEDURE IF EXISTS `test_procedure`$$ CREATE PROCEDURE debug_msg(enabled INTEGER, msg VARCHAR(255)) BEGIN IF enabled THEN select concat('** ', msg) AS '** DEBUG:'; END IF; END $$ CREATE PROCEDURE test_procedure(arg1 INTEGER, arg2 INTEGER) BEGIN SET @enabled = TRUE; call debug_msg(@enabled, 'my first debug message'); call debug_msg(@enabled, (select concat_ws('','arg1:', arg1))); call debug_msg(TRUE, 'This message always shows up'); call debug_msg(FALSE, 'This message will never show up'); END $$ DELIMITER ;</code>
Um diese Prozedur zu nutzen, rufen Sie sie innerhalb Ihrer gespeicherten Prozedur wie folgt auf:
<code class="sql">CALL test_procedure(1,2)</code>
Durch Ausführen des obigen Befehls wird die folgende Ausgabe generiert:
** DEBUG: ** my first debug message ** DEBUG: ** arg1:1 ** DEBUG: ** This message always shows up
Wie offensichtlich, können Sie mit diesem Ansatz Debug-Meldungen bequem anzeigen, ohne den Aufwand für das Erstellen und Einfügen in eine Debug-Tabelle.
Das obige ist der detaillierte Inhalt vonWie kann man gespeicherte MySQL-Prozeduren mit einer benutzerdefinierten Protokollierungsprozedur effizient debuggen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!