erreur dans votre syntaxe SQL de création de MySQL déclencheur
J'essaie de créer déclencher
CREATE TRIGGER `aster_users2` after
update ON `aster_users` FOR EACH ROW
BEGIN update event set flag=1 where
id=1; END;
mais a eu erreur suivante
ERREUR 1064 (42000): Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser près de " fin " à la ligne 6
avez des suggestions pour résoudre ce problème ?
OriginalL'auteur Alexandr | 2011-04-28
Vous devez vous connecter pour publier un commentaire.
Essayez de supprimer les points-virgules de vos déclarations.
Si vous souhaitez garder vos points-virgules,
J'ai gâché autour de l'heure. Merci
OriginalL'auteur p.campbell
Vous pouvez soit:
baisse
BEGIN
etEND
(n'est possible que lorsqu'il y a une seule instruction dans le corps):ou
ajouter le DÉLIMITEUR rédacteur de devis pour l'ensemble de la
CREATE TRIGGER
déclaration:Note de la deuxième
DELIMITER
, qui restaure la valeur par défaut de déclaration délimiteur.MODIFIER – Explication:
Vous êtes généralement à l'aide de
;
pour délimiter les états. Mais quand il s'agit de composés déclarations commeCREATE TRIGGER
, qui utilisentBEGIN/END
et vous permettent d'inclure plusieurs instructions dans leur corps, l'analyseur doit trouver un moyen de distinguer les délimiteurs entre le corps du consolidés à partir de la délimiteur d'après l'ensemble de l'instruction composée.Ainsi, vous devez vous abstenir en quelque sorte de l'utilisation de
;
à l'intérieur de l'instruction composée, ou de raconter l'analyseur que le composé déclaration d'utiliser un autre délimiteur. La première option peut également être atteint que si vous déposez simplement;
avantEND
, comme @p.campbell a suggéré.merci pour la réponse
OriginalL'auteur Andriy M
Séparateurs doivent être utilisés.
OriginalL'auteur Devart