0

我有以下准备好的声明,我正在尝试为我的购物车创建,但它不会正确执行。它报告以下错误,我不知道如何解决它:

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '; 附近使用的正确语法。在第 25 行结束 $$'

据我所知,IF 语句的语法是正确的,但它就是行不通的。

DELIMITER $$
CREATE PROCEDURE shopping_cart_add_product(IN inCartId CHAR(32),
IN inProductId INT, IN inAttributes VARCHAR(1000))
BEGIN
DECLARE productQuantity INT;

SELECT quantity
FROM shopping_cart
WHERE cart_id = inCartId
AND product_id = inProductId
AND attributes = inAttributes
INTO productQuantity;

IF productQuantity IS NULL THEN
INSERT INTO shopping_cart(cart_id, product_id, attributes,
productQuantityuantity, added_on)
VALUES (inCartId, inProductId, inAttributes, 1, NOW());

ELSE  
UPDATE shopping_cart
SET quantity = quantity + 1, buy_now = true
WHERE cart_id = inCartId
AND product_id = inProductId
AND attributes = inAttributes;
ENDIF;
END $$
4

2 回答 2

1

在 END $$ 之后删除 $$ 并在 END 和 IF 之间添加空格

    END IF;
    END $$
于 2013-05-28T12:18:48.013 回答
0

它应该是 END IF 而不是 ENDIF 在倒数第二行。

http://dev.mysql.com/doc/refman/5.5/en/if.html

...
ELSE  
UPDATE shopping_cart
SET quantity = quantity + 1, buy_now = true
WHERE cart_id = inCartId
AND product_id = inProductId
AND attributes = inAttributes;
END IF;
END $$
于 2013-05-28T12:18:44.077 回答