Insert Trigger auf gleicher Tabelle

djrick

Registered User
Hallo,

Ich versuche gerade einen Insert Trigger für eine MySQL Tabelle zu erstellen.

Ich habe ein Tool, dass in eine bestimmte Tabelle schreibt. Es schreibt immer einen Datensatz. Das Problem ist, dass ich zu jedem Satz der geschrieben wird noch einen zweiten Satz in die gleiche Tabelle schreiben muss. Eigentlich möchte ich dafür einen Trigger nutzen. Das Problem ist, dass der Trigger ja logischerweise beim zweiten Datensatz auch wieder ausgeführt wird und ich somit ein rekursives Problem habe.

Gibt es einen Trigger einen Insert Trigger für eine Tabelle zu schreiben, der einen DS in die gleiche Tabelle schreibt, ohne den Trigger noch mal auszuführen?
 
Ich habe ein Tool, dass in eine bestimmte Tabelle schreibt. Es schreibt immer einen Datensatz. Das Problem ist, dass ich zu jedem Satz der geschrieben wird noch einen zweiten Satz in die gleiche Tabelle schreiben muss. Eigentlich möchte ich dafür einen Trigger nutzen. Das Problem ist, dass der Trigger ja logischerweise beim zweiten Datensatz auch wieder ausgeführt wird und ich somit ein rekursives Problem habe.

Unabhängig davon, daß ich den Sinn dessen nicht ganz erkennen kann, zwei identische Datensätze zu schreiben, sehe ich 3 mögliche Lösungsansätze:

1. Das Tool wird derart modifiziert, daß es beide Datensätze schreibt
2. Eine Art Wrapper fängt den Schreibbefehl ab und schreibt seinerseits beide Datensätze
3. Ein Trigger prüft das Vorhandensein des zweiten Datensatzes in Korrelation zum ersten Datensatz und schreibt bei Nichtvorhandensein den zweiten Datensatz

Eine weitere Spezifizierung der Rahmenbedingungen könnte möglicherweise zielführend für den richtigen Lösungsansatz sein.
 
zwei identische Datensätze zu schreiben
Nein nicht identisch. Nur gleiche Tabelle und ein DS hängt vom anderen ab.
1. Das Tool wird derart modifiziert, daß es beide Datensätze schreibt
Wenn ich das könnte, bräuchte ich keinen Trigger => proprietäre Software
2. Eine Art Wrapper fängt den Schreibbefehl ab und schreibt seinerseits beide Datensätze
Siehe 1
3. Ein Trigger prüft das Vorhandensein des zweiten Datensatzes in Korrelation zum ersten Datensatz und schreibt bei Nichtvorhandensein den zweiten Datensatz
Wie sähe ein solcher Trigger aus?
Eine weitere Spezifizierung der Rahmenbedingungen könnte möglicherweise zielführend für den richtigen Lösungsansatz sein.
Welche Informationen benötigst du noch?
 
Der Tipp von Nexus ist schon der Richtige und da findet man mit Google auch sehr schnell Lösungen, z.B. für SQL server:
http://stackoverflow.com/questions/2237499/sql-server-trigger-loop

Allgemeinere Anfrage:
https://www.google.de/search?q=sql+prevent+recursive+trigger

Mehr als solche allgemeinen Denkanstöße können wir Dir eh nicht geben, da wir keine Ahnung haben, wie die DB genau aussieht und was genau zu machen wäre. Andererseits sind die auf Stackoverflow besprochenen Lösungen ohnehin oft sehr gut.
Natürlich muss man selbst gründlich darüber nachdenken, ob die Lösung so passt aber im Großen und Ganzen gibt es keinen Grund, warum man das selbe Thema 50x durchkauen muss, wenn es kompetent beantwortet wurde.
 
Last edited by a moderator:
Back
Top