2017-02-08 3 views
0

Ich versuche, einen Trigger (oder etwas ähnliches) zu erstellen, das eine neue Zeile einfügt, wenn eine Zeile aktualisiert wird. Das Szenario ist: Ich habe eine Tabelle von Aufgaben, die jeden Monat erledigt werden sollten. Wenn eine Aufgabe abgeschlossen ist (dies ist die update-Anweisung), möchte ich eine neue Aufgabe mit denselben Parametern, aber einem anderen Datum erstellen. Also dachte ich an einen After-Update-Trigger, der eine Insert-Anweisung auf die gleiche Tabelle auslöst, aber Oracle erlaubt dies nicht.Oracle-Trigger, der Zeile nach dem Update einfügt

Was ist ein guter Weg, dies zu erreichen?

Vielen Dank im Voraus.

Antwort

0

Was ist der Fehler, dem Sie begegnen? Wenn es eine Tabelle mutiert, gibt es Workarounds, aber sie sind ungeschickt. Siehe this AskTom thread, wenn Sie es wirklich tun wollen. Ich würde jedoch gegen Trigger empfehlen, sofern nicht unbedingt erforderlich. Solange wir mit Tom Kyte verlinken, siehe seinen Artikel "The Trouble with Triggers".

Was Sie tun könnten, ist in Ihrem Code, der das Update ausführt, führen Sie einfach eine Einfügung nach, wenn der Status auf abgeschlossen gesetzt ist. Ich denke, das ist eine viel bessere Lösung, wenn es nicht etwas ausschließt.

Verwandte Themen