Вопрос:

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

mysql mysql-error-1064

145883 просмотра

4 ответа

229 Репутация автора

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

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

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

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

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

Автор: Gnanendra Источник Размещён: 18.04.2011 01:14

Ответы (4)


54 плюса

40372 Репутация автора

Решение

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

delimiter //
create procedure ProG() 
begin 
SELECT * FROM hs_hr_employee_leave_quota;
end;//
delimiter ;
Автор: Nicola Cossu Размещён: 18.04.2011 01:16

6 плюса

97941 Репутация автора

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

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

Для такой простой процедуры, как ваша, вы можете просто:

CREATE PROCEDURE ProG()
  SELECT * FROM `hs_hr_employee_leave_quota`;
Автор: ypercubeᵀᴹ Размещён: 18.04.2011 01:55

13 плюса

99355 Репутация автора

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

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

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

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

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

Автор: Eric Leschinski Размещён: 11.01.2014 06:33

0 плюса

28 Репутация автора

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

Автор: sherin.k Размещён: 15.06.2017 06:54
Вопросы из категории :
32x32