[英]MySQL Delete removes wrong entry
我想刪除“圖像”表的條目。
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,但是當我單獨運行它時,它還會執行其他操作,我在做什么錯?
MySQL服務器可能對表名,列名等不區分大小寫。在where子句中,imageID可以引用表的ImageID列。 嘗試將存儲過程imageID中的參數名稱更改為p_imageID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.