簡體   English   中英

Mysql:存儲過程中#1064錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM