Es gibt viele Probleme mit Ihrem Code:
- Verwenden Sie ein Trennzeichen, wie in Defining Stored erklärt Programme
- es darf kein
Sgeben am Ende desDAYinON SCHEDULE EVERY 15 DAYwie in CREATE EVENT Syntax erklärt - In der Dokumentation heißt es:"Wie bei gespeicherten Routinen können Sie die zusammengesetzte Anweisungssyntax in der DO-Klausel verwenden, indem Sie die Schlüsselwörter BEGIN und END verwenden", also ein
BEGINSchlüsselwort muss nach dem erstenDOhinzugefügt werden - jede Anweisung muss mit einem Semikolon getrennt werden
- WHILE-Syntax
besagt, dass der Code zwischen
WHILE search_condition DOeingeschlossen werden muss undEND WHILE - in Ihrem
INSERT,dayist ein Feld:Schließen Sie es in Backticks ein, nicht in Anführungszeichen
Fester 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 ;
Ich schlage vor, Sie lesen die Links, die ich in meiner Antwort angegeben habe. Ziehen Sie in Zukunft die offizielle Dokumentation zurate, wenn Sie ein Problem haben:Die dort gegebenen Informationen sind genau und aktuell und kommen fast immer mit vielen Beispielen, die helfen, die zu verwendende Syntax zu verstehen.