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:example@sqldat.com+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:example@sqldat.com+1)
ORDER BY users.power DESC