MySQL Delete删除了错误的条目

时间:2015-03-24 13:28:21

标签: mysql sql-delete

我想删除我的'图片'表

DELIMITER $$
DROP PROCEDURE IF EXISTS removeImage$$

CREATE PROCEDURE removeImage(userID INT(10), imageID INT(10), OUT accesslevel INT(10))
BEGIN

SET accesslevel = 3;

IF accesslevel = 3 THEN
DELETE FROM Image
WHERE ImageID = imageID
limit 1;
END IF;

END$$
DELIMITER ;

当我用

调用此程序时
call removeImage(1, 32, @access);
SELECT @access;

@access返回3和

DELETE FROM Image
WHERE ImageID = imageID
limit 1;

删除表的第一个条目,但是当我调用它时:

DELETE FROM Image WHERE ImageID = 12;

将删除正确的条目。

所以DELETE-part会被执行,但是当它单独运行时它会做一些其他事情,我做错了什么?

1 个答案:

答案 0 :(得分:0)

MySQL Server可能对表名,列名等采用不区分大小写的模式。在where子句中,imageID可以引用表的ImageID列。尝试将存储过程imageID中的参数名称更改为p_imageID。