【问题标题】:MySQL stored procedure syntax error: if elseMySQL存储过程语法错误:if else
【发布时间】:2018-05-23 21:33:30
【问题描述】:

我有一个 MySQL 数据库,我想编写一个包含 IF ELSE 语句的查询。最初,我尝试单独使用 IF ELSE,但在多次未能使其工作后,我读到 MySQL 中的 IF ELSE 语句必须在存储过程中。但是,我无法创建没有语法错误的存储过程。这是一个非常简单的例子:

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

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

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在“PROCEDURE getUsers() 附近使用正确的语法 开始 从用户中选择 *; END'在第 1 行

我已阅读与此问题相关的许多其他帖子,但建议的修复方法似乎都不适用于我的情况(特别是添加分隔符)。此错误的原因可能是什么?

【问题讨论】:

    标签: mysql sql syntax syntax-error


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 2013-04-07
      • 1970-01-01
      • 2016-11-09
      • 2012-04-12
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多