#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法

Posted

技术标签:

【中文标题】#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法【英文标题】:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax 【发布时间】:2019-10-24 07:42:03 【问题描述】:

请帮帮我,我想创建程序,但我发现了这样的错误

CREATE PROCEDURE studentAddOrEdit(
    IN _id INT,
    IN _firstname VARCHAR(191),
    IN _lastname VARCHAR(191)
)
BEGIN
IF _id = 0 THEN 
    INSERT INTO students(firstname, lastname) VALUES(_firstname,_lastname);
    SET  _id = LAST_INSERT_ID(); 
ELSE
    UPDATE
        students
    SET
        firstname = _firstname, lastname = _lastname
    WHERE
        id = _id;
END IF;
SELECT
    id AS _id
END

现在它说

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

【问题讨论】:

哪一行是问题行? 你为什么不直接使用IODKU? 您似乎要求 CALLer 知道学生是否已经存在。使用 IODKU。 【参考方案1】:

当我添加几个分号时,您的代码可以正常工作。 Here 就是一个例子。

您可能也应该有一个 DELIMITER 语句,尽管这在 dbfiddle 中似乎不起作用。

【讨论】:

以上是关于#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法的主要内容,如果未能解决你的问题,请参考以下文章

#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册

1064. 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法

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

MySQL #1064 - 您的 SQL 语法 2020 有错误 [重复]

我的 SQL 错误:错误 1064:您的 SQL 语法有错误;