Ich habe ein System, in dem ich das Design einiger Tabellen (repliziert über Slony-I) nicht steuern kann, und daher habe ich eine Reihe von sogenannten Schattentabellen, in denen ich einige Informationen aus den replizierten Tabellen extrahiere , und speichern Sie es in der verarbeiteten Form, die ich benötige, während Sie die Datensätze entfernen, die ich ignorieren möchte.
Im Moment, nachdem ich ein neues Replikat eingerichtet habe, führe ich ein Update durch und setze einen Wert auf sich selbst zurück (z. B. UPDATE tablename SET field=field
), um die Ausführung des Triggers zu erzwingen, aber einige der Tabellen sind Millionen von Datensätzen und wachsen und es kann 30 Minuten dauern . (Und dann ist da noch das Vakuum).
Gibt es eine bessere Möglichkeit, es auszulösen, oder eine Möglichkeit, eine Funktion so zu schreiben, dass sie mit übergebenen Eingaben oder NEW
je nach aufrufendem Kontext funktioniert ? Ich zögere es, zwei verschiedene Funktionen beizubehalten, da ich zu oft gesehen habe, wo eine aktualisiert wird und nicht die andere.
Antworten:
Dies kann mithilfe der folgenden Vorlage erfolgen:
quelle