MySQL error: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса для использования рядом
у меня есть хранимая процедура такой:
CREATE PROCEDURE ProG()
BEGIN
SELECT * FROM `hs_hr_employee_leave_quota`;
END
но это дает ошибку:
#1064
- у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом " в строке 3
что означает ошибка означает? Что не так с линией номер 2?
4 ответов
вы должны изменить разделитель перед использованием триггеров, хранимых процедур и так далее.
delimiter //
create procedure ProG()
begin
SELECT * FROM hs_hr_employee_leave_quota;
end;//
delimiter ;
как узнать, что эта ошибка MySQL пытается сказать:
#1064 - You have an error in your SQL syntax;
в этой ошибке нет никаких подсказок. Вы должны дважды проверить все эти элементы, чтобы увидеть, где ваша ошибка:
- вы опустили или включили ненужный символ:
!@#$%^&*()-_=+[]{}\|;:'",<>/?
- неуместное, отсутствующее или ненужное ключевое слово:
select
,into
, или бесчисленное множество других. - у вас есть символы юникода, которые выглядят как символы ascii в вашем запрос, но не распознаются.
- неуместные, отсутствующие или ненужные пробелы или новые строки между ключевыми словами.
- непревзойденные одинарные кавычки, двойные кавычки, скобки или скобки.
уберите как можно больше из сломанного запроса, пока он не начнет работать. А затем используйте PostgreSQL в следующий раз, когда у него будет нормальная система отчетов синтаксиса.
разделители, разделители...
они действительно нужны, когда в вашей процедуре есть несколько операторов. (другими словами, у вас есть ;
в вашем коде, а затем больше операторов / команд? Затем вам нужно использовать разделители).
для такого простого rpocedure, как ваш, вы могли бы просто сделать:
CREATE PROCEDURE ProG()
SELECT * FROM `hs_hr_employee_leave_quota`;