Има много проблеми с вашия код:
- Използвайте разделител, както е обяснено в Дефиниране на съхранени Програми
- не трябва да има
S
в края наDAY
вON SCHEDULE EVERY 15 DAY
както е обяснено в Синтаксис на СЪЗДАВАНЕ НА СЪБИТИЕ - В документацията се казва „Както при съхранените процедури, можете да използвате синтаксис на съставен оператор в клаузата DO, като използвате ключовите думи BEGIN и END“, така че
BEGIN
ключова дума трябва да се добави след първияDO
- всеки израз трябва да бъде разделен с точка и запетая
- Синтаксис WHILE
казва, че кодът трябва да бъде ограден между
WHILE search_condition DO
иEND WHILE
- във вашия
INSERT
,day
е поле:оградете го в обратни отметки, а не в кавички
Фиксиран код :
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 ;
Предлагам ви да прочетете връзките, които дадох в отговора си. В бъдеще вижте официалната документация, когато имате проблем:предоставената там информация е точна и актуална и почти винаги идва с много примери, които помагат да се разбере синтаксисът, който да използвате.