Erreur MySQL: vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel qui correspond à la version de votre serveur MySQL pour la bonne syntaxe à utiliser près
j'ai la procédure Stockée comme ceci:
CREATE PROCEDURE ProG()
BEGIN
SELECT * FROM `hs_hr_employee_leave_quota`;
END
Mais il donne l'erreur:
#1064
- Vous avez une erreur dans votre syntaxe SQL; vérifiez le manuel qui correspond à la version de votre serveur MySQL pour la syntaxe à utiliser près de " à la ligne 3
que signifie l'erreur? Qu'est-ce qui ne va pas avec la ligne 2?
4 réponses
vous devez changer le délimiteur avant d'utiliser les déclencheurs, les procédures stockées et ainsi de suite.
delimiter //
create procedure ProG()
begin
SELECT * FROM hs_hr_employee_leave_quota;
end;//
delimiter ;
comment trouver ce que cette erreur MySQL essaie de dire:
#1064 - You have an error in your SQL syntax;
Cette erreur n'a pas d'indices. Vous avez pour vérifier l'ensemble de ces éléments pour voir où votre erreur est:
- Vous avez omis, ou inclus inutile symbole:
!@#$%^&*()-_=+[]{}\|;:'",<>/?
- Un égaré, manquant ou inutile mots clés:
select
,into
, ou d'innombrables autres. - Vous avez des caractères unicode qui ressemblent à des caractères ascii dans votre requête, mais ne sont pas reconnus.
- égaré, manquant ou inutile des espaces ou des lignes entre les mots-clés.
- guillemets simples, guillemets doubles, parenthèses ou accolades.
retirez autant que vous pouvez de la requête cassée jusqu'à ce qu'elle commence à fonctionner. Et puis utiliser PostgreSQL la prochaine fois qui a un système de rapport de syntaxe saine.
Délimiteurs, les séparateurs...
vous en avez vraiment besoin quand il y a plusieurs déclarations dans votre procédure. (en d'autres termes, avez-vous un ;
dans votre code et ensuite plus d'énoncés / commandes? Ensuite, vous devez utiliser des délimiteurs).
pour une procédure aussi simple que la vôtre cependant, vous pourriez juste faire:
CREATE PROCEDURE ProG()
SELECT * FROM `hs_hr_employee_leave_quota`;
ceci pourrait être un problème de mémoire sur mysql essayez d'augmenter max_allowed_packet dans mon.ini