我似乎无法弄清楚什么是语法错误。根据我的教科书,它应该是正确的,但是由于某种原因,MySQL不喜欢它。这是代码:
...
CREATE PROCEDURE test
(
products_qty INT
)
BEGIN
SET products_qty = COUNT(product_id)
IF products_qty >= 7 THEN
SELECT 'The number of products is greater than or equal to 7';
ELSEIF products_qty < 7 THEN
SELECT 'The number of products is less than7';
END IF;
...
@@ twicelost,我能够使该程序正常工作。这是我必须更改才能使其正常工作的总结:
DELIMITER //
COUNT(product_id)
,但未指定其余查询或您想要从中获取值的表products_qty
。您将其列出为传递给过程的值,如果要在过程内部设置变量的值,则不应该这样做]END // DELIMITER ;
根据您发布的内容,我相信您希望此过程看起来像这样:
DELIMITER //
CREATE PROCEDURE test ()
BEGIN
DECLARE products_qty INT;
SELECT COUNT(product_id) INTO products_qty FROM some_table;
IF products_qty >= 7 THEN
SELECT 'The number of products is greater than or equal to 7';
ELSEIF products_qty < 7 THEN
SELECT 'The number of products is less than 7';
END IF;
END//
DELIMITER ;
如果这不是您希望您执行的过程,请发布更多有关您的过程有什么问题以及您希望执行的操作的详细信息,我们将尽最大努力为您提供帮助。
希望这会有所帮助!