mysql中的存储过程返回null

时间:2016-11-19 12:40:37

标签: mysql sql stored-procedures

我在mysql数据库中创建了下表。

create table stud_info(Student_ID int,Name varchar(10),Class varchar(10),Marks int)

我还创建了一个存储过程来检索给定id的名称,如下所示:

DELIMITER //
create procedure selectEmp2(IN num1 INT,OUT name varchar(20))
BEGIN
select Name INTO name from myDB.stud_info where Student_ID=num1;
END//

当我调用存储过程时,我得到null值。请让我知道我哪里出错了。

2 个答案:

答案 0 :(得分:1)

我认为您的存储过程应该有效,但我建议为可能唯一的参数指定名称。我也更喜欢显式变量赋值,因为select into可能意味着不同的东西。这有用吗?

DELIMITER //
create procedure selectEmp2(IN in_num1 INT, OUT out_name varchar(20))
BEGIN
    select si.Name into out_name
    from myDB.stud_info si
    where si.Student_ID = in_num1;
END;//

答案 1 :(得分:1)

试试这个:

DELIMITER //
create procedure selectEmp2(IN _num1 INT,OUT _name varchar(20))
BEGIN
select Name INTO _name 
from myDB.stud_info 
where Student_ID=_num1;
END//