Moin!
Kann mir einer kurz erklären in welcher Reihenfolge
Trigger gefeuert werden.
Beispiel:
Ich habe einen Before-Update-Trigger und einen
After-Update-Trigger.
Jetzt wird von zwei unterschiedlichen Stellen aus ein
Update vorgenommen. Ala Sesamstrasse: Was passiert dann?
Was passiert mit einer Globalen Variablen, die im Before-
incrementiert und im After-Update-Trigger decrementiert bzw.
zurückgesetzt wird.
Es geht dabei immer noch um meine Mutating Tables. =
Ich habe einen Before-Update-Trigger und einen
After-Update-Trigger.
Das ist ganz simpel: zuerst der Before-Update-Trigger. Dann wird geupdatet. Dann der After-Update-Trigger.
Hast Du die FOR EACH ROW-Klausel mit angegeben, dann feuert der Trigger so oft, wie Zeilen verändert werden; ansonsten nur einmal am Anfang und am Ende der gesamten Operation.
Jetzt wird von zwei unterschiedlichen Stellen aus ein
Update vorgenommen.
Das muß Dich nicht kümmern. Transaktion B sieht nur committete Daten, d.h. wenn sie beide auf den gleichen Datensatz gehen, wartet B auf A. Ansonsten sind sie voneinander unabhängig.
Was passiert mit einer Globalen Variablen, die im Before-
incrementiert und im After-Update-Trigger decrementiert bzw.
zurückgesetzt wird.
Was meinst Du mit einer globalen Variable? Es gibt keine. Es gibt nur kontextglobale Variablen (Package-Variablen), d.h. sie sind FÜR EINE SESSION global. Das würde bedeuten, daß Transaktion A und Tr. B unterschiedliche Versionen der Variable sehen. Willst Du Daten über Sessions hinweg sichtbar machen, so mußt Du sie irgendwo speichern (tabellenmäßig), und das ist dann transaktionsgesichert => s.o.
Es geht dabei immer noch um meine Mutating Tables. =
Weiter unten im Forum hab ich 'ne Lösung zum Mutating Table-Prob
bekommen. Leuchtete auch soweit ein.
Dort werden Package-Variablen eingesetzt. Daher meine Frage.
Deine Ausführungen haben dann auch zur Klärung beigetragen. TNX
Wie sieht die Reihenfolge denn bei 2 Updates von einer Session
aus? Before_Update_1, After_Update_1, Before_Update2, After_Update_2 ?
Wie sieht die Reihenfolge denn bei 2 Updates von einer Session
aus? Before_Update_1, After_Update_1, Before_Update2,
After_Update_2 ?
Genau so. Allerdings mußt Du berücksichtigen, daß die Reihenfolge innerhalb einer Menge nicht definiert ist. Müßte aber für Deine Mutanten irrelevant sein