ストアド プロシージャをデバッグするための現在のプロセスは非常にシンプルです。実行時にストアド プロシージャから変数値を挿入する「debug」というテーブルを作成します。これにより、スクリプト内の特定の時点での任意の変数の値を確認できますが、MySQL ストアド プロシージャをデバッグするよりよい方法はありますか?
ベストアンサー1
次のdebug_msg
手順を呼び出すと、デバッグ メッセージをコンソールに簡単に出力できます。
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 ;
次に、次のようにテストを実行します。
CALL test_procedure(1,2)
出力は次のようになります。
** DEBUG:
** my first debug message
** DEBUG:
** arg1:1
** DEBUG:
** This message always shows up