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

Gna*_*dra 29 mysql mysql-error-1064

我有这样的存储过程:

CREATE PROCEDURE ProG()
  BEGIN
    SELECT * FROM `hs_hr_employee_leave_quota`;
  END
Run Code Online (Sandbox Code Playgroud)

但它给出了错误:

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

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

Nic*_*ssu 54

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

delimiter //
create procedure ProG() 
begin 
SELECT * FROM hs_hr_employee_leave_quota;
end;//
delimiter ;
Run Code Online (Sandbox Code Playgroud)


Eri*_*ski 13

如何找出这个MySQL错误试图说的:

#1064 - You have an error in your SQL syntax;
Run Code Online (Sandbox Code Playgroud)

这个错误没有任何线索.你必须仔细检查所有这些项目,看看你的错误在哪里:

  1. 您已省略或包含不必要的符号: !@#$%^&*()-_=+[]{}\|;:'",<>/?
  2. 放错位置,丢失或不必要的关键字:select,into或无数人.
  3. 您的unicode字符在查询中看起来像ascii字符但无法识别.
  4. 关键字之间错位,缺失或不必要的空格或换行符.
  5. 无与伦比的单引号,双引号,括号或大括号.

从破碎的查询中​​尽可能多地拿走,直到它开始工作.然后在下次使用PostgreSQL时有一个理智的语法报告系统.

  • 正在使用保留关键字“key”将其重命名为“key_value”并且它有效。谢谢 (2认同)

ype*_*eᵀᴹ 6

分隔符,分隔符......

当您的程序中有多个语句时,您确实需要它们.(换句话说,;你的代码中有一个,然后是更多的语句/命令吗?那么,你需要使用分隔符).

对于像你这样简单的程序,你可以这样做:

CREATE PROCEDURE ProG()
  SELECT * FROM `hs_hr_employee_leave_quota`;
Run Code Online (Sandbox Code Playgroud)