Mysql
 sql >> Base de données >  >> RDS >> Mysql

Puis-je mettre à jour la ligne qui vient d'être ajoutée à l'aide de déclencheurs MySQL

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.