Ich machte einen After-Update-Trigger, den ich als Überwachungsprotokoll für Änderungen am primären Datensatz in der Quellentabelle verwenden wollte. Alles funktioniert wie erwartet, außer wenn ich die Definition meines Auslösers sehe Ich kann sehen, dass es alle Spalten für MYLIB.NMF00PAUDI und OTBL aufgelöst hat, was bedeutet, dass ich diesen Auslöser für jede Spalte neu erstellen muss, die ich in Quell- und Prüftabellen hinzufüge.DB2 Trigger OLD_TABLE dynamische Spalten
Kann ich irgendwie SELECT * behalten? Auf diese Weise muss ich nur Quell- und Audit-Tabellen ändern.
CREATE TRIGGER MYLIB.NMF00PAUDIT
AFTER UPDATE ON MYLIB.NMF00P
REFERENCING OLD_TABLE AS OTBL
FOR EACH ROW
MODE DB2SQL
BEGIN ATOMIC
INSERT INTO MYLIB . NMF00PAUDI
SELECT * FROM OTBL
;
END
wird dies, wenn ich die Definition anzuzeigen:
BEGIN ATOMIC
INSERT INTO MYLIB . NMF00PAUDI (COL1, COL2, COL3)
SELECT COL1, COL2, COL3 FROM OTBL
;
END
Haben Sie versucht, die Quell- und Audit-Tabelle zu ändern und was passiert mit Ihrem Trigger? DB2 verfolgt Abhängigkeiten zwischen Objekten und bindet/rekompiliert sie bei Änderungen erneut. –