【问题标题】:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法
【发布时间】: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。

标签: mysql sql mariadb


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-11-22
    • 2018-11-28
    • 2021-05-12
    • 2018-11-27
    • 1970-01-01
    • 2015-10-23
    • 2017-06-01
    • 2017-02-11
    相关资源
    最近更新 更多