Ci sono molti problemi con il tuo codice:
- Utilizzare un delimitatore come spiegato in Definizione di Stored Programmi
- non devono esserci
S
alla fine delDAY
inON SCHEDULE EVERY 15 DAY
come spiegato in CREATE EVENT Syntax - La documentazione dice "Come per le routine memorizzate, puoi usare la sintassi dell'istruzione composta nella clausola DO usando le parole chiave BEGIN e END", quindi un
BEGIN
la parola chiave deve essere aggiunta dopo il primoDO
- ogni istruzione deve essere separata da un punto e virgola
- Sintassi WHILE
dice che il codice deve essere racchiuso tra
WHILE search_condition DO
eEND WHILE
- nel tuo
INSERT
,day
è un campo:racchiudilo tra apici, non tra virgolette
Codice fisso :
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 ;
Ti suggerisco di leggere i link che ho fornito nella mia risposta. In futuro, in caso di problemi, fare riferimento alla documentazione ufficiale:le informazioni fornite sono accurate e aggiornate e quasi sempre vengono fornite con molti esempi che aiutano a capire la sintassi da utilizzare.