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

时间:2017-12-10 00:29:07

标签: mysql sql syntax syntax-error

我有一个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()附近使用正确的语法   开始     从用户中选择*;   结束'第1行

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

1 个答案:

答案 0 :(得分:0)

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

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