>  기사  >  데이터 베이스  >  MySQL 저장 프로시저의 반환 값 문제에 대한 자세한 소개

MySQL 저장 프로시저의 반환 값 문제에 대한 자세한 소개

PHPz
PHPz원래의
2023-04-19 14:11:211393검색

MySQL을 사용한 데이터 개발에서 저장 프로시저는 매우 일반적으로 사용되는 도구입니다. 저장 프로시저는 코드 중복을 줄이고, 운영 절차를 단순화하며, 코드 운영 효율성을 향상시켜 데이터 개발 효율성을 높일 수 있습니다. 저장 프로시저를 사용할 때 저장 프로시저의 반환 값을 고려해야 하는 경우가 많습니다. 이 기사에서는 MySQL 저장 프로시저의 반환 값 문제에 대해 자세히 소개합니다.

1. MySQL 저장 프로시저의 기본 구조

MySQL에서 저장 프로시저는 다음 부분으로 구성됩니다.

  1. 저장 프로시저 이름: MySQL 저장 프로시저의 고유 식별자입니다.
  2. 저장 프로시저 매개변수 목록: 특정 작업을 완료하기 위해 외부에서 들어오는 매개변수를 수신하는 데 사용됩니다.
  3. 저장 프로시저 본문: SQL 문, 조건 판단, 루프 구조 등을 포함할 수 있는 저장 프로시저의 특정 실행 논리를 나타냅니다.
  4. 저장 프로시저 반환 값: 저장 프로시저 실행이 완료된 후 호출자에게 반환되는 값을 나타냅니다.

2. MySQL 저장 프로시저의 반환 값 유형

MySQL에서 저장 프로시저의 반환 값 유형은 다음 세 가지 유형으로 나눌 수 있습니다.

  1. 반환 값의 고정 개수(OUT)

이것은 반환 유형 값은 저장 프로시저에서 반환하는 고유한 값으로 이해될 수 있습니다. 저장 프로시저를 정의할 때 매개변수 목록에 OUT 유형 매개변수를 추가하여 반환 값을 받을 수 있습니다. 예:

DELIMITER $$ CREATE PROCEDURE GetTotal(IN a INT, IN b INT, OUT total INT) BEGIN SET total = a + b; END$$ DELIMITER ;

저장 프로시저 GetTotal은 두 개의 정수 매개변수 a와 b를 받습니다. . 두 매개변수의 합을 계산하고 결과를 호출자에게 반환합니다.

참고: 저장 프로시저를 정의할 때 SQL 문에서 세미콜론이 구분 기호로 오해되는 것을 방지하려면 DELIMITER를 다른 문자(세미콜론 이외의 문자)로 정의해야 합니다.

  1. 다중 반환 값​​(INOUT)

이 유형의 반환 값은 여러 값(입력 매개 변수와 출력 매개 변수 모두 포함)을 반환하는 저장 프로시저로 이해될 수 있습니다. 저장 프로시저를 정의할 때 INOUT 유형 매개변수를 매개변수 목록에 추가할 수 있습니다. 예:

DELIMITER $$ CREATE PROCEDURE CompareAge(INOUT age1 INT, INOUT age2 INT) BEGIN IF age1 < age2 THEN SET age1 = age2; END$$ DELIMITER ;

저장 프로시저 CompareAge; , 두 개의 정수 매개변수 age1과 age2를 수신하고 두 매개변수의 크기를 비교하여 age1이 age2보다 작으면 두 매개변수의 값을 교환합니다.

저장 프로시저를 실행할 때 먼저 매개 변수의 초기 값을 설정한 다음 저장 프로시저에 매개 변수를 전달해야 합니다. 저장 프로시저가 실행된 후 결과가 원래 매개 변수로 업데이트될 수 있습니다.

  1. 결과 집합 반환(CURSOR)

이러한 반환 값은 결과 집합을 반환하는 것으로 이해될 수 있습니다. 저장 프로시저를 정의할 때 커서를 정의하고 커서를 사용하여 결과 집합을 반환해야 합니다. 예:

DELIMITER $$ CREATE PROCEDURE GetList() BEGIN DECLARE cur CURSOR FOR SELECT * FROM TABLE_NAME; 호출자에게 결과 세트를 반환합니다.

참고: 결과 집합을 사용할 때 CALL 문을 사용하여 CALL GetList()와 같은 저장 프로시저를 호출해야 합니다.

3. MySQL 저장 프로시저 실행

저장 프로시저의 실행은 저장 프로시저의 컴파일 단계와 저장 프로시저의 실행 단계의 두 단계로 나뉩니다.

저장 프로시저의 컴파일 단계
  1. 저장 프로시저의 컴파일 단계는 MySQL이 처음으로 저장 프로시저를 검색할 때 저장 프로시저를 컴파일한다는 의미입니다. 컴파일 과정에서 MySQL은 저장 프로시저에 대한 구문 분석과 의미 분석을 수행하고 실행 계획을 생성합니다.

저장 프로시저의 실행 단계
  1. 저장 프로시저의 실행 단계는 저장 프로시저가 호출될 때 MySQL이 생성된 실행 계획을 실행하고 실행 결과를 호출자에게 반환하는 것을 의미합니다. 실행 과정에서 MySQL은 먼저 저장 프로시저 본문의 명령문을 실행한 다음 저장 프로시저의 반환 값 유형에 따라 해당 결과를 반환합니다.

4. MySQL 저장 프로시저 반환 값 사용 ​​

저장 프로시저의 반환 값을 사용하는 경우 CALL 문을 사용하여 저장 프로시저를 호출하고 매개 변수를 저장 프로시저에 전달해야 합니다. 예:

CALL GetTotal(1, 2, @result); SELECT @result;

저장 프로시저를 실행한 후 @변수 이름을 통해 저장 프로시저의 반환 값을 가져올 수 있습니다. @result는 저장 프로시저 GetTotal의 반환 값입니다.

참고: 저장 프로시저를 사용하여 결과 집합을 반환하는 경우 CALL 문을 사용하여 저장 프로시저를 호출하고 커서를 사용하여 결과 집합을 처리해야 합니다.

5. 요약

이 기사에서는 저장 프로시저의 기본 구조, 반환 값 유형, 실행 프로세스 및 반환 값 사용을 포함하여 MySQL 저장 프로시저의 반환 값 문제를 자세히 소개합니다. 저장 프로시저를 사용할 때 실제 필요에 따라 적절한 반환 값 유형을 선택하고 CALL 문을 사용하여 저장 프로시저를 호출하여 데이터 개발 효율성을 높여야 합니다.

위 내용은 MySQL 저장 프로시저의 반환 값 문제에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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