2013-05-07 78 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