【问题标题】:MySQL. Procedure, wrong syntaxmysql。过程,语法错误
【发布时间】:2014-05-29 14:39:56
【问题描述】:

我正在尝试了解程序是如何工作的,但我遇到了一个错误,我不知道为什么。

DELIMITER //
CREATE PROCEDURE producer
(IN marcaMasinii VARCHAR(20))
SELECT DISTINCT producator, AVG(pret) AS medie 
FROM vehicul v
JOIN proprietate p
ON v.id_vehicul = p.nr_vehicul
WHERE producator = marcaMasinii;
END //
DELIMITER ;

CALL producer("Dacia");

我有这个程序,但在“END //”所在的行出现错误。 错误听起来像这样:

"Syntax error, unexpected END, expecting $END."

如果我添加“BEGIN”,代码如下:

DELIMITER //
CREATE PROCEDURE producer
(IN marcaMasinii VARCHAR(20))
BEGIN
SELECT DISTINCT producator, AVG(pret) AS medie 
FROM vehicul v
JOIN proprietate p
ON v.id_vehicul = p.nr_vehicul
WHERE producator = marcaMasinii;
END //
DELIMITER ;

CALL producer("Dacia");

错误如下所示:

"Syntax error, unexpected CREATE, expecting END_OF_INPUT or ;"

语法有什么问题?谁能解释一下?

【问题讨论】:

  • 您缺少 BEGIN 因此 END 是意外的

标签: mysql sql database stored-procedures


【解决方案1】:

BEGIN 放在SELECT 之前。你需要先阅读http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-12
    • 2014-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多