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

UPDATE même ligne après UPDATE dans le déclencheur

Vous ne pouvez pas mettre à jour les lignes du tableau dans un après déclencheur de mise à jour.

Peut-être que vous voulez quelque chose comme ça :

CREATE TRIGGER `records_integrity` BEFORE UPDATE
ON `records`
FOR EACH ROW
    SET NEW.epc=IFNULL(new.earnings/new.clicks, 0);

MODIFIER :

Dans un déclencheur, vous avez accès à OLD et NEW . OLD sont les anciennes valeurs de l'enregistrement et NEW sont les nouvelles valeurs. Dans un avant déclencheur, le NEW les valeurs sont ce qui est écrit dans la table, vous pouvez donc les modifier. Dans un après déclencheur, le NEW les valeurs ont déjà été écrites, elles ne peuvent donc pas être modifiées. Je pense que la Documentation MySQL l'explique assez bien.