[英]MySQL Insert else delete stored procedure
我目前正在開發一個切換系統,該系統將允許用戶向集合中添加項目。 然后,他們可以刪除從數據庫中刪除行的項目。 使用2個查詢可以輕松完成此操作,但是我想用存儲過程替換它,以節省使用2個查詢進行此操作的時間。 我想做的是檢查行是否存在,是否刪除它,如果不插入它。
我正在使用phpmyadmin,正在嘗試創建一個例程。 我添加了2(itemid,使用設置為“ IN”的參數
IF (SELECT 1 = 1 FROM useritems WHERE ItemID = itemid AND UserID = userid) THEN
BEGIN
DELETE FROM useritems WHERE ItemID = itemid AND UserID = userid
END;
ELSE
BEGIN
INSERT INTO useritems (ItemID, UserID) VALUES(itemid, userid)
END;
END IF;
當我嘗試提交它時,出現以下錯誤
MySQL said: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END;
ELSE
BEGIN
INSERT INTO useritems (ItemID, UserID) VALUES(ite' at line 4
IF (SELECT * FROM useritems WHERE ItemID = itemid AND UserID = userid)
THEN
DELETE FROM useritems WHERE ItemID = itemid AND UserID = userid
ELSE
INSERT INTO useritems (ItemID, UserID) VALUES(itemid, userid)
END IF;
這是MySQL
IF
語句的正確語法:
IF search_condition THEN statement_list [ELSEIF search_condition THEN statement_list] ... [ELSE statement_list] END IF
因此,將您的代碼修改為:
IF EXISTS (SELECT 1 FROM useritems WHERE ItemID = itemid AND UserID = userid) THEN
DELETE FROM useritems WHERE ItemID = itemid AND UserID = userid;
ELSE
INSERT INTO useritems (ItemID, UserID) VALUES(itemid, userid);
END IF;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.