Det finns många problem med din kod:
- Använd en avgränsare enligt beskrivningen i Definiera lagrad Program
- det får inte finnas någon
Si slutet avDAYiON SCHEDULE EVERY 15 DAYsom förklaras i SKAPA HÄNDELSE-syntax - Dokumentationen säger "Som med lagrade rutiner kan du använda syntax för sammansatta påståenden i DO-satsen genom att använda nyckelorden BEGIN och END", så en
BEGINnyckelordet måste läggas till efter den förstaDO - varje påstående måste separeras med semikolon
- WHILE-syntax
säger att koden måste vara innesluten mellan
WHILE search_condition DOochEND WHILE - i din
INSERT,dayär ett fält:omslut det med backticks, inte inom citattecken
Fast kod :
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 ;
Jag föreslår att du läser länkarna jag gav i mitt svar. I framtiden, se den officiella dokumentationen när du har ett problem:informationen som ges där är korrekt och uppdaterad och kommer nästan alltid med många exempel som hjälper dig att förstå syntaxen som ska användas.