Anda dapat membungkus isi acara Anda dalam BEGIN ... END
blok pernyataan majemuk:
CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' DO BEGIN
SET @p=1;
UPDATE users SET rate = (@p:[email protected]+1) ORDER BY power DESC;
END
Perhatikan bahwa setiap pernyataan harus diakhiri dengan titik koma, jadi Anda harus mengonfigurasi klien Anda untuk menggunakan pembatas pernyataan yang berbeda agar tidak menganggap titik koma yang pertama kali ditemui adalah akhir dari CREATE EVENT
perintah (cara melakukannya akan tergantung pada klien Anda, tetapi di alat baris perintah MySQL
, Anda dapat menggunakan DELIMITER
perintah
dan di phpMyAdmin Anda dapat mengatur pembatas di bawah kotak input SQL).
Atau, dalam hal ini Anda dapat menggunakan UPDATE
multi-tabel sintaks untuk melakukan inisialisasi variabel sehingga Anda hanya memerlukan satu pernyataan sederhana:
CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 20:00:00' DO
UPDATE users, (SELECT @p:=0) init
SET users.rate = (@p:[email protected]+1)
ORDER BY users.power DESC