Du kan slå in brödtexten på ditt evenemang i en BEGIN ... END
sammansatt uttalande block:
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
Observera att varje sats måste avslutas med semikolon, så du måste konfigurera din klient att använda en annan satsavgränsare så att den inte tror att det första semikolonet påträffas är slutet av CREATE EVENT
kommandot (hur du gör detta beror på din klient, men i MySQL kommandoradsverktyg
, kan du använda DELIMITER
kommando
och i phpMyAdmin kan du ställa in avgränsaren under SQL-inmatningsrutan).
Alternativt kan du i det här fallet använda multipla-tabellen UPDATE
syntax för att utföra variabelinitiering så att du bara behöver en enda enkel sats:
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