Ich möchte, dass die Spalte epc
immer earnings
/ clicks
ist. Ich verwende einen AFTER UPDATE-Trigger, um dies zu erreichen. Wenn ich also dieser Tabelle 100 Klicks hinzufügen würde, möchte ich, dass der EPC automatisch aktualisiert wird.
Ich versuche das:
%Vor%Und diesen Fehler bekommen:
%Vor%Ich habe versucht, auch ALT zu verwenden, habe aber auch einen Fehler bekommen. Ich könnte BEFORE tun, aber wenn ich dann 100 Klicks hinzufüge, würde es die vorherigen # Klicks für den Auslöser (richtig?) Verwenden
Was soll ich tun, um dies zu erreichen?
EDIT - Ein Beispiel für eine Abfrage, die auf diesem ausgeführt werden würde:
%Vor%Sie können Zeilen in der Tabelle nicht in einem nach Aktualisierungstrigger aktualisieren.
Vielleicht möchten Sie so etwas:
%Vor%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 before -Trigger werden die NEW
-Werte in die Tabelle geschrieben, sodass Sie sie ändern können. In einem after -Trigger wurden die NEW
-Werte bereits geschrieben, sodass sie nicht geändert werden können. Ich denke, die MySQL-Dokumentation erklärt das ziemlich gut.
Vielleicht könnten Sie zwei separate Anweisungen in dieser Transaktion schreiben
%Vor%oder Sie könnten sie in eine Funktion einfügen, sagen Sie updateClick () und rufen Sie diese Funktion einfach auf. Auf diese Weise können Sie Ihre Logik leicht ändern, wenn es notwendig sein sollte.
Wenn Sie die Logik in einen Trigger einfügen, kann dies zu einer Situation führen, in der das Debugging und die Ablaufverfolgung unnötig komplex sind.