집 >데이터 베이스 >MySQL 튜토리얼 >사용자 정의 로깅 프로시저를 사용하여 MySQL 저장 프로시저를 효율적으로 디버깅하는 방법은 무엇입니까?
디버그 테이블에 변수 값을 삽입하는 것은 간단한 방법이지만 MySQL 저장 프로시저를 디버깅하는 더 효율적인 방법이 있습니다. 이 문서에서는 디버그 메시지를 콘솔에 기록하기 위해 사용자 지정 절차를 활용하는 대체 접근 방식을 살펴봅니다.
아래에 제시된 debug_msg 절차를 사용하면 디버그 메시지를 조건부로 콘솔에 출력할 수 있습니다.
<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>
이 프로시저를 활용하려면 다음과 같이 저장 프로시저 내에서 호출하세요.
<code class="sql">CALL test_procedure(1,2)</code>
위 명령을 실행하면 다음 출력이 생성됩니다.
** DEBUG: ** my first debug message ** DEBUG: ** arg1:1 ** DEBUG: ** This message always shows up
분명히 알 수 있듯이 이 접근 방식을 사용하면 디버그 테이블을 생성하고 삽입하는 오버헤드 없이 디버그 메시지를 편리하게 볼 수 있습니다.
위 내용은 사용자 정의 로깅 프로시저를 사용하여 MySQL 저장 프로시저를 효율적으로 디버깅하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!