mysql - Mysql 中的删除查询工作错误

标签 mysql stored-procedures sql-delete

我有一个 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 时:调用 test_ind('8','2011')

它必须删除studentID = 8,但它删除了表中的所有行。

这个查询有什么问题?
请问你能帮帮我吗!

最佳答案

存储过程中发生名称冲突,因为参数名称与列名称完全相同。

更改参数名称即可生效,

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 ;

关于mysql - Mysql 中的删除查询工作错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16413254/

相关文章:

sql-server - 如何删除一个数据库中的多个存储过程

mysql - mysql 中的过程

mysql - 使用 MySQL LEFT JOIN 删除行

php - 删除 PDO 中的多行

python - django:如何在 Trunc 之后用外键反向计数来注释查询集?

php存储过程添加错误

mysql - asp.net从mysql填充gridview的问题

php - 删除查询不起作用(没有错误/语法错误)

mysql - 从数据库获取每分钟的时间戳

mysql - 如何在mysql中定义返回值的存储过程