Erreur lors de l'utilisation de l'autre, s'en sql déclencheur
Je ne suis pas sûr de quoi de mal avec mon code.
delimiter $$
CREATE TRIGGER updateRestaurantAtributes
AFTER UPDATE ON fields_data
FOR EACH ROW BEGIN
IF (NEW.fieldid = 1) THEN
UPDATE restaurants
SET address1 = NEW.data_txt
Where rid = NEW.itemid;
ELSE IF (NEW.fieldid = 2) THEN
UPDATE restaurants
SET address2 = NEW.data_txt
Where rid = NEW.itemid;
END IF;
END$$
La version ci-dessus ne fonctionne pas. Il dit erreur de syntaxe près de "FIN"(Dernière ligne). Mais la chose fonctionne quand j'utilise
delimiter $$
CREATE TRIGGER updateRestaurantAtributes
AFTER UPDATE ON fields_data
FOR EACH ROW BEGIN
IF (NEW.fieldid = 1) THEN
UPDATE restaurants
SET address1 = NEW.data_txt
Where rid = NEW.itemid;
END IF;
IF (NEW.fieldid = 2) THEN
UPDATE restaurants
SET address2 = NEW.data_txt
Where rid = NEW.itemid;
END IF;
END$$
Je ne suis pas sûr pourquoi. Ai-je raté quelque chose?
OriginalL'auteur user899893 | 2011-12-31
Vous devez vous connecter pour publier un commentaire.
Au lieu de
ELSE IF
, La syntaxe de MySQL utiliseELSEIF
(sans l'espace).Bien que vous pourriez être en mesure de faire le travail avec l'espace dans
ELSE IF
par l'ajout d'uneEND IF
. Par l'utilisation de l'espace, vous pouvez effectivement engager une secondeIF
déclaration, qui doit être fermé de manière indépendante de la première extérieureIF
déclaration.Merci elle est déjà là, lié à l'expression "MySQL syntaxe"
Mes excuses - je n'ai pas de cliquer sur le lien
OriginalL'auteur Michael Berkowski