2015-04-24 66 views
0

與存儲過程的問題我都試過了,但沒有什麼工作,我有這個存儲過程:我已經在MySQL

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 

在不工作條件....我能做些什麼?

+0

你需要告訴mysql哪些numbre_u是sproc參數,哪一個是你的表中的一個字段......否則它就會被執行爲相當於'真正的'。 –

回答

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

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; 

你r主要錯誤只是變量命名...