mysql - Cursor incorrect integer value 错误

标签 mysql

我正在尝试在 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/

相关文章:

php - 如何在月份日期条件下从mysql表中获取确切数据

Mysql行返回/最新记录中的错误值

php 日期和 mysql 时间戳比较

mysql - 按重复的 Secret_id 排序

php - 从 PHP 中的外键引用获取列值(名称)

php - 寻找有关使用 SMS 更新在线数据库的建议

sql - 根据连接优先级列的最低值选择不同的标识行

连接失败时Mysql不生成日志

mysql - 在多列中查找值的范围

mysql - ruby rails : Datatype foreign key