mysql存储过程的参数名不要跟字段名一样 (血淋淋的代价)

时间:2021-02-19 19:33:00

如题,将会导致的结果就是参数的值将不会是你传入的值,而是变成每条记录的那个字段的值。
这样的后果,mysql存储过程的参数名不要跟字段名一样 (血淋淋的代价)是灰常严重的。比如执行删除操作,它能把整个表的记录全删了。
mysql存储过程的参数名不要跟字段名一样 (血淋淋的代价)这个是我的血淋淋的代价啊。

死坑如下,勿跳:

    1. DELIMITER $$
    2. USE `b10k`$$
    3. DROP PROCEDURE IF EXISTS `sp_delete_species`$$
    4. CREATE DEFINER=`luth`@`%` PROCEDURE `sp_delete_species`(
    5. IN  species_id  INT,        /*物种ID*/
    6. OUT     out_rows        INT         /*受影响行数*/
    7. )
    8. BEGIN
    9. DELETE FROM `sample` WHERE `species_ID` = species_id ;
    10. DELETE FROM `filepath` WHERE `species_ID` = species_id ;
    11. DELETE FROM `species` WHERE `species_ID` = species_id ;
    12. SET out_rows = ROW_COUNT();
    13. END$$
    14. DELIMITER ;