mysql存儲過程的參數名不要跟字段名一樣

mysql存儲過程的參數名不要跟字段名一樣

 

如題,將會導致的結果就是參數的值將不會是你傳入的值,而是變成每條記錄的那個字段的值。

這樣的後果,是灰常嚴重的。比如執行刪除操作,它能把整個表的記錄全刪瞭。

這個是我的血淋淋的代價啊。

 

死坑如下,勿跳:

[sql]
DELIMITER $$  
  
USE `b10k`$$  
  
DROP PROCEDURE IF EXISTS `sp_delete_species`$$  
  
CREATE DEFINER=`luth`@`%` PROCEDURE `sp_delete_species`(  
    IN  species_id  INT,        /*物種ID*/  
    OUT     out_rows        INT         /*受影響行數*/  
    )  
BEGIN  
    DELETE FROM `sample` WHERE `species_ID` = species_id ;  
    DELETE FROM `filepath` WHERE `species_ID` = species_id ;  
    DELETE FROM `species` WHERE `species_ID` = species_id ;  
    SET out_rows = ROW_COUNT();  
    END$$  
  
DELIMITER ;  

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *