Er zijn veel problemen met uw code:
- Gebruik een scheidingsteken zoals uitgelegd in Opgeslagen definiëren Programma's
- er mag geen
S
. zijn aan het einde vanDAY
inON SCHEDULE EVERY 15 DAY
zoals uitgelegd in CREATE EVENT-syntaxis - De documentatie zegt:"Net als bij opgeslagen routines, kunt u de syntaxis van samengestelde instructies gebruiken in de DO-clausule door de sleutelwoorden BEGIN en END te gebruiken", dus een
BEGIN
trefwoord moet worden toegevoegd na de eersteDO
- elke instructie moet worden gescheiden door een puntkomma
- WHILE-syntaxis
zegt dat de code moet worden ingesloten tussen
WHILE search_condition DO
enEND WHILE
- in uw
INSERT
,day
is een veld:zet het tussen backticks, niet tussen aanhalingstekens
Vaste code :
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 ;
Ik raad je aan de links te lezen die ik in mijn antwoord heb gegeven. Raadpleeg in de toekomst de officiële documentatie als je een probleem hebt:de informatie die daar wordt gegeven is nauwkeurig en up-to-date en bevat bijna altijd veel voorbeelden die je helpen de te gebruiken syntaxis te begrijpen.