Ada banyak masalah dengan kode Anda:
- Gunakan pembatas seperti yang dijelaskan dalam Mendefinisikan Tersimpan Program
- tidak boleh ada
S
di akhirDAY
diON SCHEDULE EVERY 15 DAY
seperti yang dijelaskan dalam BUAT Sintaks ACARA - Dokumentasi mengatakan "Seperti halnya rutinitas tersimpan, Anda dapat menggunakan sintaks pernyataan majemuk dalam klausa DO dengan menggunakan kata kunci BEGIN dan END", jadi
BEGIN
kata kunci harus ditambahkan setelahDO
pertama - setiap pernyataan harus dipisahkan dengan titik koma
- Sintaks SAAT
mengatakan kode harus diapit di antara
WHILE search_condition DO
danEND WHILE
- di
INSERT
,day
adalah bidang:lampirkan di backticks, bukan dalam tanda kutip
Kode tetap :
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 ;
Saya sarankan Anda membaca tautan yang saya berikan dalam jawaban saya. Di masa mendatang, lihat dokumentasi resmi jika Anda mengalami masalah:informasi yang diberikan akurat dan terkini, dan hampir selalu disertai dengan banyak contoh yang membantu memahami sintaks yang digunakan.