>  기사  >  데이터 베이스  >  mysql에서 저장 프로시저를 디버깅하는 방법

mysql에서 저장 프로시저를 디버깅하는 방법

coldplay.xixi
coldplay.xixi원래의
2020-08-25 10:15:3611878검색

MySQL에서 저장 프로시저를 디버깅하는 방법: 1. "CREATE TEMPORARY TABLE" 문을 사용하여 디버깅 프로세스를 기록할 임시 테이블을 만듭니다. 2. 저장 프로시저에 "select @xxx" 문을 추가합니다. console 을 실행하고, 콘솔에서 결과를 확인하고, 출력 결과에 따라 코드를 수정하세요.

mysql에서 저장 프로시저를 디버깅하는 방법

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

Mysql 저장 프로시저 디버깅 방법:

navicat에서 저장 프로시저 호출 

1. 호출하는 문을 작성하세요

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

2. 실행을 직접 클릭하고 팝업에 입력하세요. -up 입력 상자:

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

저장 프로시저 실행 단계 추적(디버깅)

Oracle과 달리 mysql에는 저장 프로시저 디버깅을 위한 plsqldevelper 도구가 있으므로 실행 프로세스를 추적하는 두 가지 간단한 방법이 있습니다.

    사용 "CREATE TEMPORARY TABLE" 문을 사용하여 디버깅 과정을 기록하는 데 사용되는 임시 테이블
  • 저장 프로시저에 직접 select @xxx
  • 을 추가하고 콘솔에서 결과를 확인하고 이를 기반으로 코드를 수정합니다. 출력 결과:
  • 예를 들어 위의 쿼리 문을 프로세스에 추가합니다(아래 빨간색 문 참조)
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

[관련 학습 권장 사항:

mysql 학습

]

위 내용은 mysql에서 저장 프로시저를 디버깅하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.