我有一个 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/