Mysql
 sql >> Datenbank >  >> RDS >> Mysql

UPDATE Gleiche Zeile nach UPDATE im Trigger

Sie können Zeilen in der Tabelle nicht in einem after aktualisieren Auslöser aktualisieren.

Vielleicht möchten Sie so etwas:

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

BEARBEITEN:

Innerhalb eines Triggers haben Sie Zugriff auf OLD und NEW . OLD sind die alten Werte im Datensatz und NEW sind die neuen Werte. In einem vorher Auslöser, der NEW Werte werden in die Tabelle geschrieben, sodass Sie sie ändern können. In einem nach Auslöser, der NEW Werte wurden bereits geschrieben und können daher nicht geändert werden. Ich denke, die MySQL-Dokumentation erklärt das ziemlich gut.