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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL存储过程语法错误:if else相关的知识,希望对你有一定的参考价值。

我有一个mysql数据库,我想写一个包含IF ELSE语句的查询。最初,我尝试使用IF ELSE本身,但在反复失败以使其工作之后,我读到MySQL中的IF ELSE语句必须在存储过程中。但是,我无法创建没有语法错误的存储过程。这是一个非常简单的例子:

DELIMITER //
CREATE OR REPLACE PROCEDURE getUsers()
BEGIN
  SELECT * FROM users;
END //
DELIMITER ;

我得到的具体错误信息是:

错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'PROCEDURE getUsers()BEGIN select * from users附近使用正确的语法;在第1行结束

我已经阅读了许多与此问题相关的其他帖子,但没有一个修复建议似乎适用于我的情况(具体来说,添加分隔符)。可能是导致此错误的原因是什么?

答案

有趣的是,经过几个小时的尝试来解决这个问题,我在发布问题后碰巧找到了答案。我需要删除CREATE OR REPLACE PROCEDURE getUsers()并替换它

DROP DATABASE IF EXISTS getUsers; ... CREATE PROCEDURE getUsers()

以上是关于MySQL存储过程语法错误:if else的主要内容,如果未能解决你的问题,请参考以下文章

在sqlserver的存储过程中怎样使用if-else if

MySQL:存储过程语法错误

Oracle 存储过程 在循环裏面,怎麽写2个IF语句?不是IF...ELSE IF 哦 因为2个代码块都要判断

向存储过程添加 IF ...ELSE 语句以跳过重复的主键

mysql 语法

mySQL语法中的存储过程及if语句的使用简例