Mysql 在SQL语句中使用存储过程和多个参数删除

Mysql 在SQL语句中使用存储过程和多个参数删除,mysql,stored-procedures,Mysql,Stored Procedures,我不熟悉存储过程,并且已经创建了一个当两个非唯一键列等于传递给它的两个参数时从表中删除的存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_deleteTempRecords`(IN `schoolID` SMALLINT(6), IN `testID` INT(11)) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DELETE FROM tbl_temp WH

我不熟悉存储过程,并且已经创建了一个当两个非唯一键列等于传递给它的两个参数时从表中删除的存储过程

CREATE DEFINER=`root`@`localhost` 
PROCEDURE `sp_deleteTempRecords`(IN `schoolID` SMALLINT(6), IN `testID` INT(11)) 
NOT DETERMINISTIC 
CONTAINS SQL SQL SECURITY DEFINER 
BEGIN 
DELETE FROM tbl_temp WHERE tbl_temp.testID=testID AND tbl_temp.schoolID=schoolID; 
END
但是,在执行过程时,它不会删除任何内容。如果我将SQL语句更改为只删除主键,那么它就工作了(为此,我必须更改INs以接收tempID,INT(11)。如果我使用schoolID和testID参数值的两个值直接在phpMyAdmin中输入SQL,它将正常运行并删除所有内容


我以前只使用主键删除了存储过程中的记录,所以不明白为什么它不会使用其他参数删除,直接执行SQL代码会。谢谢!

必须工作。检查提供的值。如果我使用schoolID和testID参数值的两个值直接在phpMyAdmin中输入SQL,它可以正常运行并删除所有内容。如果您使用schoolID和testID参数值的两个值在phpMyAdmin中直接调用此SP会怎么样?Hi@Akina感谢您查找并重新创建它。您的提示让我查看了传递给它的参数,我意识到我的代码以错误的顺序将参数传递给SP中声明的内容。愚蠢的错误,但值得学习!谢谢。