コードには多くの問題があります:
- ストアドの定義で説明されているように、区切り文字を使用しますプログラム
-
SがあってはなりませんDAYの終わりにON SCHEDULE EVERY 15 DAYCREATEEVENT構文 で説明されているように - ドキュメントには、「保存されたルーチンと同様に、BEGINキーワードとENDキーワードを使用して、DO句で複合ステートメント構文を使用できます」と記載されているため、
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 ;
私の答えで私が与えたリンクを読むことをお勧めします。今後、問題が発生した場合は、公式ドキュメントを参照してください。そこに記載されている情報は正確で最新のものであり、ほとんどの場合、使用する構文を理解するのに役立つ多くの例が付属しています。