Często muszę utworzyć wyzwalacz, który skopiuje całą zawartość wierszy na insert / update do innej tabeli. Ponieważ niektóre tabele mają 200 kolumn, często jest to długotrwałe pisanie
CREATE TRIGGER scheme.trigger AFTER UPDATE ON scheme.table
REFERENCING OLD as o_row NEW as n_row
FOR EACH ROW
BEGIN
INSERT INTO archive (...) VALUES(...);
END;
To dużo pisania. Czy istnieje łatwy generator do budowania tego typu wyzwalaczy, wkładek, aktualizacji?
Odpowiedzi:
1 dla odpowiedzi № 1Jeśli proces ma zestaw parametrów wejściowych iproces z tymi parametrami jest taki sam, można wywołać procedurę składowaną z wyzwalacza, przekazując parametry. W ten sposób nie musisz recypować / odtwarzać wszystkich tych zdań DML.
1 dla odpowiedzi nr 2
Nie wiem o narzędziu, które generuje instrukcje CREATE TRIGGER dla ciebie, ale wielokrotnie generowałem ten DDL z kwerendy, a jedynym widokiem, jaki kiedykolwiek miałem do odniesienia, był SYSCAT.COLUMNS
Poniższe czynniki uprościją wyzwalaczGenerator kwerend DDL, który będziesz pisać: - Nazwy kolumn między oryginalną tabelą a tabelą archiwum są identyczne. - Żadna z kolumn w tabeli docelowej nie jest zdefiniowana jako ZGODNA ZAWSZE, w przeciwnym razie będziesz musiał pominąć je z instrukcji INSERT.