这个 MySQL 存储过程中的语法错误在哪里?

Posted

技术标签:

【中文标题】这个 MySQL 存储过程中的语法错误在哪里?【英文标题】:Where is the syntax error in this MySQL stored procedure? 【发布时间】:2020-05-08 13:57:01 【问题描述】:

我想将输出参数名称设置为串联的 kund.Vorname 和 kund.Nachname。但我得到一个语法错误,我找不到它。如有任何帮助,我将不胜感激。

CREATE PROCEDURE GetName(IN kartennummer CHAR(16), OUT name VARCHAR(91))
BEGIN
SELECT @name = (CONCAT_WS(' ', kund.Vorname, kund.Nachname)
  FROM Kunden kund,
       Konten kont
  WHERE kund.KundenID = kont.KundenID AND
        kont.Kartennummer = kartennummer));
END;

【问题讨论】:

JOINJOINJOIN. 计数(和)。同一个号码? 你可以使用这个答案***.com/a/61681752/5193536这是同一个家庭作业 显示错误信息;它准确地说明了问题所在。 @nbk:教练的姓名首字母“nbk”是不是巧合? 【参考方案1】:

您在第 3 行关闭了太多括号

【讨论】:

【参考方案2】:

首先,您在选择语句@name 中使用不带前导@ 的名称。那不一样。

【讨论】:

【参考方案3】:

而且,根据上下文,您可能需要DELIMITER 声明。

【讨论】:

以上是关于这个 MySQL 存储过程中的语法错误在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

Liquibase:MySQL 存储过程中的 SQL 语法错误

MySQL存储过程语法错误:if else

MySQL 5.7 存储过程语法错误,通过 phpadmin 和 Ubuntu 16.04

mysql触发器中的语法错误

MySQL存储过程语法痛苦

MySQL:存储过程语法错误