Kommandozeilen.- Befehl

Hallo,

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…

Sollte auf Windows & Linux funktionieren.

Danke!

Laut Radio Erewan: JEIN.

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 …

Andreas

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.

Hallo,

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…

lG

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.

Aah, an dieses hatte ich gar nicht gedacht… Dann werde ich wohl am besten bei meinen Cronjob bleiben…