繁体   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