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

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

死坑如下,勿跳:

    1. DELIMITER $$  
    2.   
    3. USE `b10k`$$  
    4.   
    5. DROP PROCEDURE IF EXISTS `sp_delete_species`$$  
    6.   
    7. CREATE DEFINER=`luth`@`%` PROCEDURE `sp_delete_species`(  
    8.     IN  species_id  INT,        /*物种ID*/  
    9.     OUT     out_rows        INT         /*受影响行数*/  
    10.     )  
    11. BEGIN  
    12.     DELETE FROM `sample` WHERE `species_ID` = species_id ;  
    13.     DELETE FROM `filepath` WHERE `species_ID` = species_id ;  
    14.     DELETE FROM `species` WHERE `species_ID` = species_id ;  
    15.     SET out_rows = ROW_COUNT();  
    16.     END$$  
    17.   
    18. DELIMITER ; 
原文地址:https://www.cnblogs.com/caicaizi/p/4941363.html