sql >> Base de Datos >  >> RDS >> Mysql

ACTUALIZAR Misma fila después de ACTUALIZAR en Trigger

No puede actualizar filas en la tabla en un después activador de actualización.

Quizás quieras algo como esto:

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

EDITAR:

Dentro de un disparador, tienes acceso a OLD y NEW . OLD son los valores antiguos en el registro y NEW son los nuevos valores. En un antes disparador, el NEW los valores son los que se escriben en la tabla, por lo que puede modificarlos. En un después disparador, el NEW Los valores ya se han escrito, por lo que no se pueden modificar. Creo que la documentación de MySQL explica esto bastante bien.