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
S
i slutet avDAY
iON SCHEDULE EVERY 15 DAY
som 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
BEGIN
nyckelordet 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 DO
ochEND 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.