gibt es eine Möglichkeit, dass beim Ausführen eines Triggers ein bestimmter Befehl auf dem System ausgeführt wird??
Hintergrund ist dieser, dass ich eine externe Anwendung alle Änderungen in einer berstimmten Tabelle zur Echtzeit mitteilen möchte und hierzu eben einen bestimmten Befehl ausführen muss…
Es ist halt eine schlechte Idee, in einem TRIGGER Kommandos auf Systemebene auszuführen. Es gibt aber untrusted languages, mal so als Stichwort für Dich zur Suche.
Besser aber:
nutze LISTEN & NOTIFY für sowas oder
befülle eine extra Tabelle und frage diese extern ab
LISTEN/NOTIFY wurde speziell für Deinen Anwendungszweck erfunden …
Kann da akretschmer nur zustimmen. Was du suchst, ist LISTEN und NOTIFY.
Das hat außerdem noch den Vorteil, das du die Signale wirklich nur bekommst, wenn es auch Änderungen gab - also wenn die Änderungen committed werden.
LISTEN/NOTIFY ist hinfällig, da die Anwedung, welche in diese Tabelle schreibt, closed source ist und somit keine Möglichkeit hierfür besteht.
Ich habe einen Trigger auf dieser Tabelle bereits erstellt, welche in eine 2te Tabelle alle Änderungen aufzeichnet, und ein Cronjob arbeitet diese Tabelle auch stündlich ab.
Dann werd ich mir wohl die Untrusted languages anschauen müssen…
Deine externen Anwendungen sehen - aufgrund der Transaktionssicherheit - sowieso keine Daten, bevor diese nicht committed sind.
Wenn du also per untrusted Stored Procedure irgendeinen Befehl ausführst und der versucht deine aktuellen Änderungen aus der DB zu lesen - wird das scheitern.