Ошибка MySQL: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом - PullRequest
28 голосов
/ 18 апреля 2011

У меня есть хранимая процедура:

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

Но выдает ошибку:

#1064 - в синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' в строке 3

Что означает ошибка?Что не так со строкой № 2?

Ответы [ 4 ]

53 голосов
/ 18 апреля 2011

Вы должны изменить разделитель перед использованием триггеров, хранимых процедур и т. Д.

delimiter //
create procedure ProG() 
begin 
SELECT * FROM hs_hr_employee_leave_quota;
end;//
delimiter ;
13 голосов
/ 11 января 2014

Как узнать, что пытается сказать эта ошибка MySQL:

#1064 - You have an error in your SQL syntax;

Эта ошибка не имеет никаких признаков. Вы должны дважды проверить все эти пункты, чтобы увидеть, где ваша ошибка:

  1. Вы пропустили или включили ненужный символ: !@#$%^&*()-_=+[]{}\|;:'",<>/?
  2. Неуместное, отсутствующее или ненужное ключевое слово: select, into или множество других.
  3. В вашем запросе есть символы юникода, которые выглядят как символы ascii, но не распознаются.
  4. Смещенные, отсутствующие или ненужные пробелы или переводы строк между ключевыми словами.
  5. Несоответствующие одинарные кавычки, двойные кавычки, скобки или фигурные скобки.

Отнимите как можно больше от неработающего запроса, пока он не начнет работать. А затем в следующий раз используйте PostgreSQL с системой отчетов о синтаксисе.

5 голосов
/ 18 апреля 2011

Разделители, разделители ...

Они вам действительно нужны, когда в вашей процедуре несколько операторов.(другими словами, у вас есть ; в вашем коде и затем больше операторов / команд? Затем вам нужно использовать разделители).:

CREATE PROCEDURE ProG()
  SELECT * FROM `hs_hr_employee_leave_quota`;
0 голосов
/ 15 июня 2017

Это может быть проблема с памятью в MySQL попытаться увеличить max_allowed_packet в my.ini

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...