我正在尝试在 MySQL 中制作我的第一个游标,但我收到一个错误。它说不正确的整数值。我在想这会从列 customer_Id 中获取第一行中的值,并将其存储到 IdValue 变量中。如何正确编码并修复此错误?
DELIMITER $$
CREATE PROCEDURE CursorProcedure()
BEGIN
DECLARE IdValue int;
DECLARE myCursor CURSOR FOR
SELECT customer_Id FROM customers;
OPEN myCursor;
FETCH myCursor INTO IdValue;
CLOSE myCursor;
SELECT IdValue;
END$$
DELIMITER ;
最佳答案
DROP PROCEDURE IF EXISTS CursorProcedure;
DELIMITER $$
CREATE PROCEDURE CursorProcedure()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE IdValue int;
DECLARE myCursor CURSOR FOR SELECT customer_Id FROM customers;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN myCursor;
read_loop: LOOP
FETCH myCursor INTO IdValue;
IF done THEN
LEAVE read_loop;
END IF;
--
-- YOU ARE IN YOUR READ LOOP
-- DO SOMETHING WITH IT HERE
--
END LOOP;
CLOSE myCursor;
END$$
DELIMITER ;
但是在“do something with it here”中,不要对它做SELECT,因为它会生成多个结果集。做一些有意义的事情。
关于 Cursors 的手册页.
顺便说一句,游标很少是你的 friend 。他们非常慢。仅在紧急情况下使用它们。
关于mysql - Cursor incorrect integer value 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39050204/