MySQL 테이블에서 행 반복
MySQL에서는 프로시저 또는 커서 기반을 사용하여 테이블 행 반복을 수행할 수 있습니다. 접근하다. 이 문서에서는 테이블 A에서 테이블 B로 데이터를 복사하는 것과 관련된 특정 시나리오를 기반으로 두 가지 방법을 모두 살펴봅니다.
프로시저 기반 접근 방식
프로시저는 다음과 같은 작업 집합을 캡슐화합니다. 테이블의 행을 반복할 수 있습니다. 절차의 예는 다음과 같습니다.
DELIMITER ;; 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; ;;
프로시저를 생성한 후 CALL ROWPERROW();를 사용하여 실행할 수 있습니다.
커서 기반 접근 방식
커서를 사용하면 쿼리에서 반환된 행 집합을 반복할 수 있습니다. 커서 기반 접근 방식은 다음과 같습니다.
DELIMITER ;; CREATE PROCEDURE cursor_ROWPERROW() BEGIN DECLARE cursor_ID INT; DECLARE cursor_VAL VARCHAR; DECLARE done INT DEFAULT FALSE; DECLARE cursor_i CURSOR FOR SELECT ID,VAL FROM table_A; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cursor_i; read_loop: LOOP FETCH cursor_i INTO cursor_ID, cursor_VAL; IF done THEN LEAVE read_loop; END IF; INSERT INTO table_B(ID, VAL) VALUES(cursor_ID, cursor_VAL); END LOOP; CLOSE cursor_i; END; ;;
적절한 데이터 유형으로 변수를 선언하고 오류나 예외를 처리해야 합니다.
고려 사항
프로시저 기반 접근 방식과 커서 기반 접근 방식을 모두 사용하여 테이블 행을 반복할 수 있습니다. 그러나 프로시저 기반 방법은 커서보다 유연성이 떨어집니다. 커서를 사용하면 여러 행을 동시에 업데이트하는 등 더 복잡한 작업이 가능합니다.
성능상의 이유로 일반적으로 반복 메커니즘보다 집합 기반 쿼리가 선호됩니다. 그러나 실시간 업데이트가 필요한 복잡한 작업이나 시나리오의 경우 루프 접근 방식이 필요할 수 있습니다.
위 내용은 MySQL 테이블의 행을 반복하는 방법: 프로시저와 커서?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!