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

新手上路,请多包涵

我有这样的存储过程:

 CREATE PROCEDURE ProG()
  BEGIN
    SELECT * FROM `hs_hr_employee_leave_quota`;
  END

但它给出了错误:

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

错误是什么意思?第 2 行有什么问题?

原文由 Gnanendra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

在使用触发器、存储过程等之前,您必须更改分隔符。

 delimiter //
create procedure ProG()
begin
SELECT * FROM hs_hr_employee_leave_quota;
end;//
delimiter ;

原文由 Nicola Cossu 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在下面得到了同样的错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 ‘)’ 附近使用正确的语法

使用 尾随逗号 时,如下所示:

 create table person(
  name varchar(50),
);             -- ↑ A trailing comma

所以,我删除 了尾随的逗号,如下所示,然后错误就解决了:

 create table person(
  name varchar(50)
);             -- ↑ No trailing comma

而且,我在下面也遇到了同样的错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“count(num int)”附近使用正确的语法

“count”“(” 之间没有空格时,如下所示,因为它被识别为 “count()” ,这是 MySQL 中的内置函数:

             -- No space
                 ↓
create table count(
  num int
);

所以,我在 “count”“(” 之间留了一个空格,如下图,然后错误就解决了:

           -- Make a space
                  ↓
create table count (
  num int
);

原文由 Kai - Kazuya Ito 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题