[英]Mysql: #1064 error in stored procedure
每當我嘗試創建以下存儲過程時。
CREATE PROCEDURE purchaseItem (IN productID INT, IN quantity INT, IN price DECIMAL(10,2) , IN memID INT)
BEGIN
DECLARE qnty INT DEFAULT 0;
SELECT p_Unit INTO qnty FROM product WHERE p_ID = productID;
IF qnty >= quantity && qnty != 0 THEN
INSERT INTO purchase VALUES (NULL, productID, quantity, price, memID, 0, NULL);
UPDATE product SET p_Unit = (qnty - quantity) WHERE p_ID = productID;
END IF;
END;
我得到錯誤
#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 '' at line 3
有人可以指出我做錯了什么嗎? 謝謝!
不要忘記更改DELIMITER
,而不使用SELECT..INTO
嘗試以下查詢
DELIMITER $$
CREATE PROCEDURE purchaseItem
(
IN productID INT,
IN quantity INT,
IN price DECIMAL(10,2) ,
IN memID INT
)
BEGIN
DECLARE qnty INT;
SET qnty = (SELECT p_Unit FROM product WHERE p_ID = productID);
IF qnty >= quantity && qnty != 0 THEN
INSERT INTO purchase VALUES
(NULL, productID, quantity, price, memID, 0, NULL);
UPDATE product
SET p_Unit = (qnty - quantity)
WHERE p_ID = productID;
END IF;
END$$
DELIMITER ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.