Je kunt de hoofdtekst van je evenement in een BEGIN ... END
samengesteld instructieblok:
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
Merk op dat elke instructie moet worden afgesloten met een puntkomma, dus u moet uw client configureren om een ander scheidingsteken voor de instructie te gebruiken, zodat hij niet denkt dat de eerste gevonden puntkomma het einde is van de CREATE EVENT
commando (hoe u dit doet, hangt af van uw client, maar in de MySQL-opdrachtregeltool
, kunt u de DELIMITER
. gebruiken commando
en in phpMyAdmin kun je het scheidingsteken onder het SQL-invoerveld instellen).
Als alternatief kunt u in dit geval de multiple-table UPDATE
. gebruiken syntaxis om variabele initialisatie uit te voeren zodat u slechts een enkele eenvoudige instructie nodig heeft:
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