Il y a beaucoup de problèmes avec votre code :
- Utilisez un délimiteur comme expliqué dans Définir Stocké Programmes
- il ne doit pas y avoir de
Sà la fin deDAYdansON SCHEDULE EVERY 15 DAYcomme expliqué dans Syntaxe CREATE EVENT - La documentation indique "Comme pour les routines stockées, vous pouvez utiliser la syntaxe d'instruction composée dans la clause DO en utilisant les mots clés BEGIN et END", donc un
BEGINle mot-clé doit être ajouté après le premierDO - chaque instruction doit être séparée par un point-virgule
- Syntaxe WHILE
indique que le code doit être placé entre
WHILE search_condition DOetEND WHILE - dans votre
INSERT,dayest un champ :mettez-le entre guillemets, pas entre guillemets
Code fixe :
DELIMITER $$$
CREATE EVENT autoDayInsert ON SCHEDULE EVERY 15 DAY DO BEGIN
SET @dayCounter = 0;
WHILE @dayCounter < 15 DO
INSERT INTO appointmentDays(`day`) VALUES(NOW() + INTERVAL @dayCounter DAY);
SET @dayCounter = @dayCounter +1;
END WHILE;
END $$$
DELIMITER ;
Je vous suggère de lire les liens que j'ai donnés dans ma réponse. A l'avenir, référez-vous à la documentation officielle lorsque vous rencontrez un problème :les informations qui y sont données sont exactes et à jour, et sont presque toujours accompagnées de nombreux exemples permettant de comprendre la syntaxe à utiliser.