mysql - 在 SQL 语句中使用存储过程和多个参数删除
问题描述
我是存储过程的新手,并且当两个非唯一键列等于传递给它的两个参数时,我做了一个从表中删除的过程。
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 语句更改为只删除主键,那么它就可以工作(为此,我必须更改 IN 以接收 tempID,INT(11)。如果我使用 schoolID 的两个值直接在 phpMyAdmin 中输入 SQL 和testID 参数值,它运行并删除一切正常。
我之前只删除了使用主键的存储过程的记录,所以不明白为什么它不会在直接执行SQL代码时使用其他参数删除。谢谢!
解决方案
推荐阅读
- julia - 学习 JuMP 的最佳资源是什么?
- service - 如何在 SFCC (Demandware) 中实现 serviceworker
- android - 我应该在哪里初始化监听器?
- android - 如何修复设备和 Google Play 上的应用程序之间的不兼容问题?
- angular - 如何使用 ngIf 显示/隐藏 ngx-boostrap 弹出框
- r - 将集成的 R 图与 ggplot 结合起来
- machine-learning - 在微分的情况下,MSE 中的术语顺序是否重要?
- c# - Listview 删除特定文件名
- amazon-web-services - 如何重命名粘合作业输出文件名?
- django - 如何将令牌身份验证添加到标头