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