【问题标题】:MySql Cursor FETCH not returning Primary Key fieldsMySql Cursor FETCH 不返回主键字段
【发布时间】:2013-05-09 03:37:27
【问题描述】:

我有一个简单的游标,可以获取表的主键。查看结果,获取的主键列的每个值都是空的。如果我将游标的查询作为独立查询运行,它会正确返回结果。此表引用我的 Account 表及其主键值。如果我将“SELECT PrimaryKeyId”更改为“SELECT AccountId”,它会正确获取该字段的值。

我在这里错过了什么?

DECLARE testtableid INT UNSIGNED;
DECLARE accountid INT UNSIGNED DEFAULT getAccountId(inUserLoginId);
DECLARE cur CURSOR FOR SELECT TestTableId
                                 FROM testtable
                                WHERE AccountId = accountId;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cur;    

named_loop: LOOP

    FETCH cur INTO testtableid ;

    IF done
    THEN
        LEAVE named_loop;
    END IF;
END named_loop;

CLOSE cur;

【问题讨论】:

  • TestTableId 字段类型是什么?

标签: mysql null cursor primary-key


【解决方案1】:

轰隆隆!

http://bugs.mysql.com/bug.php?id=28227

我一直忘记我是在 Windows 环境中开发 MySql 数据库,注意区分大小写,尽管这仅适用于 Linux 环境。

查询:

DECLARE testtableid INT;
SELECT TestTableId FROM testable

当不在区分大小写的环境中执行时,选择相同的、不区分大小写名称的局部变量。该值为 NULL,因为它未声明。

我将把这件事搁置一旁,希望有一天我可以为某人节省一个小时的挫败感。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多