我在mysql中存储过程有问题

时间:2015-04-24 17:51:47

标签: mysql stored-procedures

我尝试了一切但没有任何作用。我有这个存储过程:

DROP PROCEDURE IF EXISTS socios;
CREATE PROCEDURE socios(in nombre_u varchar(25), out socios INT)
BEGIN
    SELECT COUNT(*) 
    INTO socios 
    FROM socio 
    WHERE NOMBRE_U = nombre_u; 
END

不工作的情况;我该怎么办?

2 个答案:

答案 0 :(得分:0)

对于函数参数和列名使用相同的名称会有名称歧义。而是使用一些其他相关名称,如下例所示:

DROP PROCEDURE IF EXISTS socios;
CREATE PROCEDURE socios(in _nombre_u varchar(25), out socios INT)
BEGIN
    SELECT count(*) into socios FROM socio where NOMBRE_U = _nombre_u; 
END;

其中一个类似的答案:
https://stackoverflow.com/a/23867775/767881

答案 1 :(得分:0)

您的查询,

DROP PROCEDURE IF EXISTS socios;
CREATE PROCEDURE socios ( in nombre_u varchar(25), out socios INT)
   BEGIN SELECT count(*) into socios FROM socio where NOMBRE_U=nombre_u;
END;

应改为:

DROP PROCEDURE IF EXISTS socios;
CREATE PROCEDURE socios ( in pnombre varchar(25), out psocios INT)
   BEGIN SELECT count(*) into psocios FROM socio where NOMBRE_U=pnombre;
END;

您的主要错误只是变量命名......