# ORACLE SQL FOR EACH ROW



## rambozola (29. Jun 2005)

Hi leute.

weiss jemand von euch was die Zeile FOR EACH ROW in einem Trigger bei Oracle bewirkt, ausser das es sich dann um einen Tupeltrigger handelt?

Wie kann ich mir das vorstellen?
Was ist der Unterschied zwischen einem Tabellentrigger und einem Tupeltrigger?


----------



## Bleiglanz (29. Jun 2005)

update footable set wertfueralle=42

=> ein tupeltrigger springt für jede zeile an, ein tabellentrigger nur EINMAL bei einem solchen befehl


----------



## rambozola (29. Jun 2005)

du meinst wenn es einen trigger gibt der die änderungen in der tabelle zählt dann würde ein tupeltrigger die anzahl der zeilen von footable als änderung zählen und ein tabellentrigger nur 1mal für die gesamte änderung von footable ?


----------



## Bleiglanz (30. Jun 2005)

Im Prinzip ja, aber was meinst du mit "Anzahl"? Der Trigger wird eben bei FOR EACH ROW genau "Anzahl der Änderungen" mal gefeuert.



> The FOR EACH ROW option determines whether the trigger is a row trigger or a statement trigger. If you specify FOR EACH ROW, then the trigger fires once for each row of the table that is affected by the triggering statement. The absence of the FOR EACH ROW option indicates that the trigger fires only once for each applicable statement, but not separately for each row affected by the statement.


----------

