2013-05-07 51 views
2

我有一個SP:刪除查詢錯誤

DELIMITER $$ 
CREATE PROCEDURE test_ind(in StudentID varchar(4), in issueYear varchar(4)) 
BEGIN 
delete from Mark where StudentID = StudentID and issueYear = issueYear; 
END $$ 
DELIMITER ; 

當我把這個SP:call test_ind('8','2011')

必須刪除studentID = 8,但在表中刪除所有行。

這個查詢有什麼問題?
請你幫幫我吧!

回答

4

存儲過程上發生名稱衝突,因爲參數的名稱與列的名稱完全相同。

更改參數的名稱,它會工作,

DELIMITER $$ 
CREATE PROCEDURE test_ind(IN _StudentID VARCHAR(4), IN _issueYear VARCHAR(4)) 
BEGIN 
    DELETE FROM Mark 
    WHERE StudentID = _StudentID AND 
      issueYear = _issueYear; 
END $$ 
DELIMITER ; 
+0

好的謝謝。它正在工作! – 2013-05-07 07:19:02

+0

不客氣':)' – 2013-05-07 07:19:27

+0

我該如何解決這個問題?我是新來的。非常感謝你! – 2013-05-07 07:21:01