>  기사  >  데이터 베이스  >  mysql 저장 프로시저 반환

mysql 저장 프로시저 반환

PHPz
PHPz원래의
2023-05-11 18:07:07611검색

MySQL 저장 프로시저는 하나의 단위로 호출할 수 있는 미리 작성된 SQL 문 모음입니다. MySQL 저장 프로시저에는 데이터베이스 성능 향상, 네트워크 트래픽 감소, 비즈니스 로직 통합 및 단순화, 보안 향상 등 많은 이점이 있습니다. 그러나 MySQL 저장 프로시저를 사용하는 과정에서 결과 집합을 반환해야 하는 경우도 있습니다. 이 기사에서는 MySQL 저장 프로시저를 사용하여 결과 집합을 반환하는 방법을 살펴보겠습니다.

  1. 저장 프로시저 생성

MySQL 저장 프로시저 생성은 매우 간단하며 CREATE PROCEDURE 문을 통해 수행할 수 있습니다. 다음은 두 개의 정수 매개변수를 허용하고 이를 추가하고 결과를 반환하는 저장 프로시저의 간단한 예입니다.

DELIMITER //
CREATE PROCEDURE add_numbers(IN num1 INT, IN num2 INT, OUT result INT)
BEGIN
SET result = num1 + num2;
END //
DELIMITER ;

  1. 저장 프로시저 호출

저장 프로시저 호출도 매우 간단합니다. CALL 문을 사용하면 됩니다. 다음은 위에서 생성한 저장 프로시저를 호출하고 결과를 콘솔에 인쇄하는 예입니다.

SET @a = 1;
SET @b = 2;
CALL add_numbers(@a, @b, @ result);
SELECT @result;

  1. 결과 세트 반환

MySQL 저장 프로시저에서 결과 세트를 반환해야 하는 경우 CURSOR를 사용할 수 있습니다. CURSOR를 사용하면 결과 세트를 반복하고 결과를 변수에 저장할 수 있습니다. 다음은 제품 목록에 대한 결과 집합을 반환하는 예입니다.

DELIMITER //
CREATE PROCEDURE get_product_list()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE id INT;
DECLARE name VARCHAR(255);

DECLARE cur CURSOR FOR SELECT id, name FROM products;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

CREATE TABLE IF NOT EXISTS temp_product_list(id INT, name VARCHAR(255));
TRUNCATE TABLE temp_product_list;

OPEN cur ;

read_loop: LOOP

FETCH cur INTO id, name;
IF done THEN
  LEAVE read_loop;
END IF;

INSERT INTO temp_product_list(id, name)
VALUES(id, name);

END LOOP;

CLOSE cur;

SELECT * FROM temp_product_list;
END //
DELIMITER ;

위 코드에서는 먼저 CURSOR 객체를 생성하고 제품 목록을 지정합니다. 질문. 결과 세트를 순회하면서 결과를 temp_product_list 테이블에 하나씩 삽입합니다. 마지막으로 쿼리 결과를 반환합니다.

  1. 반환된 결과 처리

저장 프로시저를 호출할 때 SELECT 문을 사용하여 반환된 결과 집합을 처리할 수 있습니다. 예:

CALL get_product_list();

이 문은 get_product_list 저장 프로시저를 호출하고 결과 집합을 반환합니다. SELECT 문을 사용하여 결과 세트를 콘솔에 출력할 수 있습니다.

SELECT * FROM temp_product_list

이 문은 temp_product_list 테이블의 모든 결과를 출력합니다.

요약

MySQL 저장 프로시저는 데이터베이스 성능을 향상하고, 네트워크 트래픽을 줄이고, 비즈니스 로직을 통합 및 단순화하고, 보안을 향상시키는 데 도움이 되는 매우 유용한 기술입니다. 실제 사용에서는 결과 집합을 반환해야 할 수도 있습니다. 이 경우 CURSOR를 사용하여 쿼리 결과를 탐색하고 결과를 테이블에 저장할 수 있습니다. 마지막으로 SELECT 문을 사용하여 반환된 결과 집합을 처리할 수 있습니다. 이 기사의 소개를 통해 독자들은 MySQL 저장 프로시저를 사용하여 결과 세트를 반환하는 방법을 더 깊이 이해하게 될 것이라고 믿습니다.

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

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