Comme l'a dit zerkms, vous devez changer le délimiteur. Mais comme vous n'utilisez qu'une seule ligne de code, vous n'avez pas besoin de BEGIN et END. Et de cette façon, vous n'avez pas non plus besoin de changer le délimiteur
CREATE TRIGGER `default_order_value`
AFTER INSERT ON `clusters`
FOR EACH ROW
UPDATE `clusters` SET `order` = NEW.id WHERE `id` = NEW.id;
Étant donné que vous obtenez une erreur, vous ne pouvez pas mettre à jour la ligne, je suggère ce qui suit :
N'effectuez PAS du tout la requête de mise à jour. Par défaut, la valeur de la commande =la valeur de l'ID. Ainsi, lorsque la valeur de la commande change, vous pouvez la mettre à jour correctement.
Si vous demandez les données avec php, faites quelque chose comme ceci :
$order = $row['order'];
if ($order == '')
$order = $row['id'];
Une fois que vous avez besoin de le mettre à jour, vous avez la valeur correcte.