UPDATE Gleiche Zeile nach UPDATE in Trigger

8

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%     
hellohellosharp 24.07.2013, 00:53
quelle

2 Antworten

10

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.

    
Gordon Linoff 24.07.2013, 00:55
quelle
0

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.

    
hanzpk 24.07.2013 05:08
quelle

Tags und Links