1

以下のストアドプロシージャを作成しようとするときはいつでも。

   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 

誰かが私が間違っているところを指摘してもらえますか?ありがとう!

4

1 に答える 1

1

を変更することを忘れない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 ;
于 2012-09-30T05:43:01.780 に答える