Du kan pakke brødteksten af din begivenhed ind i en BEGIN ... END
sammensat erklæringsblok:
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
Bemærk, at hver sætning skal afsluttes med et semikolon, så du skal konfigurere din klient til at bruge en anden sætningsadskiller, så den ikke tror, at det først stødte semikolon er slutningen af CREATE EVENT
kommando (hvordan du gør dette afhænger af din klient, men i MySQL kommandolinjeværktøjet
, kan du bruge DELIMITER
kommando
og i phpMyAdmin kan du indstille afgrænseren under SQL-indtastningsfeltet).
Alternativt kan du i dette tilfælde bruge multiple-tabellen UPDATE
syntaks for at udføre variabel initialisering, så du kun kræver en enkelt simpel sætning:
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