我想删除我的'图片'表
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会被执行,但是当它单独运行时它会做一些其他事情,我做错了什么?
答案 0 :(得分:0)
MySQL Server可能对表名,列名等采用不区分大小写的模式。在where子句中,imageID可以引用表的ImageID列。尝试将存储过程imageID中的参数名称更改为p_imageID。