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 deDAY
dansON SCHEDULE EVERY 15 DAY
comme 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
BEGIN
le 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 DO
etEND WHILE
- dans votre
INSERT
,day
est 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.