Vous pouvez envelopper le corps de votre événement dans un BEGIN ... END
bloc d'instruction composé :
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
Notez que chaque instruction doit se terminer par un point-virgule, vous devez donc configurer votre client pour qu'il utilise un délimiteur d'instruction différent afin qu'il ne pense pas que le premier point-virgule rencontré est la fin de CREATE EVENT
commande (comment faire cela dépendra de votre client, mais dans l'outil de ligne de commande MySQL
, vous pouvez utiliser le DELIMITER
commande
et dans phpMyAdmin, vous pouvez définir le délimiteur sous la zone de saisie SQL).
Alternativement, dans ce cas, vous pouvez utiliser la table multiple UPDATE
syntaxe pour effectuer une initialisation de variable de sorte que vous n'ayez besoin que d'une seule instruction simple :
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