0
我試圖在存儲過程中聲明帶有多個連接的遊標。查詢在存儲過程之外完美運行,但存儲過程在遊標聲明處給我一個錯誤,聲稱存在語法錯誤。帶有多個連接的MySQL遊標聲明
DROP PROCEDURE IF EXISTS getCheaters;
DELIMITER $$
CREATE PROCEDURE getCheaters()
BEGIN
DECLARE id INT (11);
DECLARE first_name VARCHAR (255);
DECLARE last_name VARCHAR(255);
DECLARE file_name VARCHAR(255);
DECLARE no_more_rows BOOLEAN;
DECLARE loop_cntr INT DEFAULT 0;
DECLARE num_rows INT DEFAULT 0;
DECLARE userCursor FOR
SELECT last_name, first_name, users.id
FROM users JOIN documents ON (users.id = documents.user_id)
JOIN licenses ON (licenses.user_id = users.id)
WHERE multi_user_license_id IS NULL
GROUP BY last_name, first_name
HAVING count(documents.title) > 60;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET no_more_rows = TRUE;
OPEN userCursor;
SELECT FOUND_ROWS() INTO num_rows;
read_loop: LOOP
/*Do stuff*/
IF no_more_rows THEN
CLOSE userCursor;
LEAVE read_loop;
END IF;
SET loop_cntr = loop_cntr + 1;
END LOOP;
END $$
DELIMITER;
而且我得到錯誤1064(42000):您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以找到在第1行'DELIMITER'附近使用的正確語法。 錯誤1064(42000):您的SQL語法錯誤;查看與您的MySQL服務器版本相對應的手冊,查看'FOR (SELECT last_name,first_name,users.id 012 FROM users JOIN docu'at line 13
是否有人看到我的錯誤在哪裏?
謝謝!知道這是我過去看的一些愚蠢的東西。 – ginc