2013-01-03 60 views
-1

可能重複:
MySQL - Syntax Error in Strored ProcedureMYSQL ::誤差一般變量錯誤

謝謝,但如果使用可變:::::這樣的:

IF NOT EXISTS(SELECT ReferenceID as ExistedRefID FROM filesrefrences WHERE RefrenceKey= pRefrenceKey) THEN 
     INSERT INTO filesrefrences(RefrenceKey, RefrenceCount) 
     VALUES(pRefrenceKey,1); 
     SELECT LAST_INSERT_ID(); 
    ELSE 
     UPDATE filesrefrences 
     SET RefrenceCount= RefrenceCount+1 
     WHERE ReferenceID= ExistedRefID; 
     SELECT ExistedRefID; 
    END IF 

它是指執行錯誤,ExistedRefID是未知的,我怎麼能解決這個

+0

不要添加同樣的問題再次你可以得到同樣的問題的答案。你最後一個問題是http://stackoverflow.com/questions/14134105/mysql-syntax-error-in-strored-procedure –

+0

我已經給你最後一個問題的答案檢查它 –

+0

抱歉,但我添加它作爲答案最後Q.無論如何,我非常感謝你的回答 –

回答

0

爲什麼不乾脆:

insert into filesreferences (RefrenceKey, RefrenceCount) values (pRefrenceKey, 1) 
    on duplicate key update RefrenceCount= RefrenceCount+1; 
+0

但RefrenceKey不是主鍵......它有效 –

+0

啊;當您提出問題時,它可以幫助您提供實際的表格結構。如果RefrenceKey是一個唯一的索引,它應該仍然可以工作。 – ysth

+0

好的..我會把它作爲唯一的索引...謝謝你 –