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

프로시저를 사용하지 않고 MySQL 테이블의 행을 어떻게 반복할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-12 17:20:021026검색

How Can I Iterate Through Rows in a MySQL Table Without Using Procedures?

MySQL 테이블의 행 반복

MySQL 테이블의 각 행을 반복하는 것은 데이터 처리에서 일반적인 작업입니다. "A의 각 레코드에 대해"와 같은 개념이 다른 상황에 존재하지만 MySQL은 다른 접근 방식을 따릅니다.

루프를 사용하여 행 변환 및 업데이트

복잡한 작업을 수행하려면 다른 테이블에 데이터를 삽입하고 필드 값을 업데이트하는 등 개별 행에서 루프 기반 접근 방식을 활용할 수 있습니다. 절차는 실행 가능한 옵션이지만 이 가이드에서는 절차가 필요하지 않은 솔루션에 중점을 둘 것입니다.

예시 시나리오

테이블 A와 B가 있는 시나리오를 생각해 보세요. , 각각 ID 및 VAL 필드가 있습니다. 루프와 같은 프로세스를 사용하여 A의 내용을 B로 복사하는 것을 목표로 합니다.

프로시저

  1. 프로시저 만들기: 질문은 절차를 피하는 것을 제안하며 테이블 행을 반복하는 편리한 방법을 제공합니다. 다음과 같이 ROWPERROW라는 프로시저를 만들 수 있습니다.
CREATE PROCEDURE ROWPERROW()
BEGIN
    DECLARE n INT DEFAULT 0;
    DECLARE i INT DEFAULT 0;
    SELECT COUNT(*) FROM table_A INTO n;
    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;
  1. 구분 기호 설정 및 실행: SQL이 각 줄을 개별적으로 실행하지 못하도록 구분 기호를 변경합니다.
DELIMITER ;;
CALL ROWPERROW();
DELIMITER ;

대체 접근 방식

루프는 행을 반복하는 간단한 방법을 제공하지만 대체 접근 방식도 있습니다.

  1. 집합 기반 쿼리: 가능하면 여러 행에서 동시에 작동하는 집합 기반 쿼리를 사용하는 것이 더 효율적입니다.
  2. 커서: 커서는 명시적인 행 탐색을 허용하지만 성능이 떨어지고 올바르게 작성하기가 더 어려울 수 있습니다.

궁극적으로 최선의 접근 방식은 현재 수행 중인 특정 작업과 성능 고려 사항에 따라 다릅니다.

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

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