Bạn có thể bao bọc phần nội dung sự kiện của mình trong BEGIN ... END
khối câu lệnh ghép:
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
Lưu ý rằng mỗi câu lệnh phải được kết thúc bằng dấu chấm phẩy, vì vậy bạn phải định cấu hình máy khách của mình để sử dụng dấu phân cách câu lệnh khác để nó không nghĩ rằng dấu chấm phẩy gặp đầu tiên là phần cuối của CREATE EVENT
lệnh (cách thực hiện điều này sẽ phụ thuộc vào ứng dụng khách của bạn, nhưng trong công cụ dòng lệnh MySQL
, bạn có thể sử dụng DELIMITER
lệnh
và trong phpMyAdmin, bạn có thể đặt dấu phân cách bên dưới hộp nhập SQL).
Ngoài ra, trong trường hợp này, bạn có thể sử dụng UPDATE
nhiều bảng cú pháp để thực hiện khởi tạo biến sao cho bạn chỉ yêu cầu một câu lệnh đơn giản:
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