Istnieje wiele problemów z Twoim kodem:
- Użyj separatora, jak wyjaśniono w Definiowanie zapisanych Programy
- nie może być
S
pod koniecDAY
wON SCHEDULE EVERY 15 DAY
jak wyjaśniono w CREATE EVENT Składnia - Dokumentacja mówi:„Podobnie jak w przypadku procedur przechowywanych, możesz użyć składni złożonej instrukcji w klauzuli DO, używając słów kluczowych BEGIN i END”, więc
BEGIN
słowo kluczowe musi być dodane po pierwszymDO
- każda instrukcja musi być oddzielona średnikiem
- WHILE Składnia
mówi, że kod musi być ujęty między
WHILE search_condition DO
iEND WHILE
- w swoim
INSERT
,day
jest polem:umieść je w backtickach, a nie w cudzysłowie
Stały 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 ;
Proponuję przeczytać linki, które podałem w mojej odpowiedzi. W przyszłości, gdy będziesz mieć problem, zapoznaj się z oficjalną dokumentacją:podane tam informacje są dokładne i aktualne i prawie zawsze zawierają wiele przykładów, które pomagają zrozumieć składnię, której należy użyć.