创建MySql的存储过程时,发生“Result consisted of more than one row”的错误。
存储过程的代码如下:
CREATE PROCEDURE GetPetName(IN carID int, OUT petName char(10))
BEGIN
SELECT PetName into petName FROM `inventory` WHERE CarID = carID;
END
发生原因:SQL变量名不能和列名一样(SQL列名不区分大小写)。在上面代码中,它会认为CarID和carID是相同的。
因此,修改上述代码如下:
CREATE PROCEDURE GetPetName(IN id int, OUT pet char(10))
BEGIN
SELECT PetName into pet FROM `inventory` WHERE CarID = id;
END
当然,如果还有“Result consisted of more than one row”的问题,可以考虑修改代码如下:
CREATE PROCEDURE GetPetName(IN id int, OUT pet char(10))
BEGIN
SELECT PetName into pet FROM `inventory` WHERE CarID = id limit 1;
END