> 데이터 베이스 > MySQL 튜토리얼 > 저장 프로시저를 사용하여 MySQL 테이블의 모든 행을 어떻게 반복할 수 있습니까?

저장 프로시저를 사용하여 MySQL 테이블의 모든 행을 어떻게 반복할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-11-15 06:39:02
원래의
403명이 탐색했습니다.

How can I iterate through all rows in a MySQL table using a stored procedure?

프로시저를 사용하여 테이블의 모든 행을 반복

MySQL에서 테이블의 모든 행을 반복하려면 저장 프로시저를 만들어야 합니다. 프로시저를 사용하면 일련의 SQL 문을 단일 단위로 캡슐화하고 이를 블록으로 실행할 수 있습니다.

프로시저 생성

테이블의 모든 행을 반복하려면 'A'를 입력하고 특정 작업을 수행하려면 다음 구문을 사용하여 프로시저를 생성합니다.

DROP PROCEDURE IF EXISTS ROWPERROW; -- Delete existing procedure if any

DELIMITER ;; -- Change delimiter to avoid statement-by-statement execution

CREATE PROCEDURE ROWPERROW()
BEGIN
  DECLARE n INT DEFAULT 0; -- Declare a variable to count rows
  DECLARE i INT DEFAULT 0; -- Declare a variable for looping
  SELECT COUNT(*) INTO n FROM table_A; -- Get the total number of rows
  SET i = 0; -- Initialize loop counter
  WHILE i < n DO
    -- Insert the current row into table 'B'
    INSERT INTO table_B(ID, VAL) SELECT (ID, VAL) FROM table_A LIMIT i, 1;
    SET i = i + 1; -- Increment loop counter
  END WHILE;
End;
;;

DELIMITER ; -- Reset the delimiter
로그인 후 복사

프로시저 실행

프로시저가 생성되면 호출할 수 있습니다. 다음 구문을 사용합니다.

CALL ROWPERROW();
로그인 후 복사
로그인 후 복사

이것은 프로시저를 실행하고 테이블 'A'의 각 행을 반복하여 지정된 작업을 수행합니다.

'ID'와 'VAL' 필드가 있는 'A'와 'B'라는 두 개의 테이블이 있다고 가정해 보겠습니다. 다음 프로시저는 'A' 테이블의 모든 행을 반복하고 데이터를 'B' 테이블에 복사합니다.

DROP PROCEDURE IF EXISTS ROWPERROW;
DELIMITER ;;

CREATE PROCEDURE ROWPERROW()
BEGIN
  DECLARE n INT DEFAULT 0;
  DECLARE i INT DEFAULT 0;
  SELECT COUNT(*) INTO n FROM table_A;
  SET i = 0;
  WHILE i < n DO
    INSERT INTO table_B(ID, VAL) SELECT (ID, VAL) FROM table_A LIMIT i, 1;
    SET i = i + 1;
  END WHILE;
End;
;;

DELIMITER ;
로그인 후 복사

프로시저를 실행하고 데이터를 복사하려면 다음 명령을 실행합니다.

CALL ROWPERROW();
로그인 후 복사
로그인 후 복사

위 내용은 저장 프로시저를 사용하여 MySQL 테이블의 모든 행을 어떻게 반복할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿