1
첫 프로 시저를 작성하고 오류가 발생했습니다. 나는 줄을 지우지 만 그 이유는 분명치 않다. 누군가 여기서 문제를 발견 할 수 있습니까? 그것은 변수입니까?MySQL 프로 시저가 컴파일되지 않습니다 - 변수가있는 삭제시 오류가 발생했습니다
DROP PROCEDURE IF EXISTS MPT_PROC;
DELIMITER $$
CREATE PROCEDURE MPT_PROC
MODIFIES SQL DATA
BEGIN
#-- DECLARE statements
DECLARE v_user_id INT DEFAULT 0;
DECLARE no_more_rows BOOLEAN;
DECLARE v_loop_cntr INT DEFAULT 0;
DECLARE v_num_rows INT DEFAULT 0;
DECLARE c_userfiles CURSOR
FOR
SELECT distinct f.user_id
FROM MPT_STG_FILEUPLOAD f
WHERE f.status = 'A'; #-- Accepted
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET no_more_rows = TRUE;
OPEN c_userfiles;
#-- Loop through each user_id found as pending
the_loop: LOOP
FETCH c_userfiles INTO v_user_id;
#-- Break out of the loop if
#-- 1) there were no records, or
#-- 2) we've processed them all.
IF no_more_rows THEN
CLOSE c_userfiles;
LEAVE the_loop;
END IF;
DELETE FROM MPT_STG_FILEUPLOAD s
WHERE s.user_id = v_user_id;
COMMIT; #--Commiting the changes for this user
END LOOP the_loop;
END IF;
END
DELIMITER ;
감사합니다! 삭제시 별칭이 어떤 이유로 받아 들여지지 않았습니다 ... ... – Leo
아주 좋은 생각! 나는 그것을 지금 할 것이다! 감사. 레오 – Leo
감사합니다. Spencer, 예외가 발생하는 경우 루프의 다음 값으로 이동하는 방법을 제어하는 방법이 확실하지 않습니다. 아이디어가 있습니까? – Leo