Update Trigger

wolfmoonheart

Grünschnabel
Servus Leute,

ich bin mit Trigger noch nicht wirklich so warm und habe daher wahrscheinlich ein dämliches Problem.

Es geht um ein Forum Post. Wird ein Forum-Post editiert (UPDATE), so soll ein Trigger im selbigen Datensatz die Spalte FORUM_POST_EDIT um eins hochzählen. Das könnte natürlich auch PHP übernehmen, aber ich möchte es gerne über Trigger lösen.

Bitte daher um Hilfe:

Mein bisheriger Trigger

Code:
DELIMITER |


create trigger PostEditCountIncrement after update
on FORUM_POST for each row
begin 
    UPDATE FORUM_POST
    SET
    NEW.FORUM_POST_EDIT = 
        OLD.FORUM_POST_EDIT + 1,
    NEW.FORUM_POST_EDIT_DATUM =
        DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s');  
end;


|

DELIMITER ;



Fehlermeldung beim Update:

Can't update table 'forum_post' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.


Kann ich eventuell das gar nicht so lösen, wie ich es gerne möchte.
 
Hab gerade ein bisschen gegoogelt, da ich auch neu in Sachen Trigger bin. Hab folgendes gefunden, was funktioniert:
SQL:
DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ `tutorials.de`.`onUpdateCount`$$

CREATE
    /*!50017 DEFINER = 'root'@'localhost' */
    TRIGGER `onUpdateCount` BEFORE UPDATE ON `trigger` 
    FOR EACH ROW BEGIN
            SET
                NEW.`edit_count` = OLD.`edit_count` + 1;
    END;
$$

DELIMITER ;

Das Problem bei dir ist, dass du ja den Trigger in eine Endlosschleife schicken würdest, da du ihn ja innerhalb des Triggers mit dem UPDATE-Befehl erneut auslösen würdest.
 
Zurück