Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Python:Wie erhalte ich Benachrichtigungen für Änderungen an der MySQL-Datenbank?

Es ist theoretisch möglich, aber ich würde es nicht empfehlen:

Im Wesentlichen haben Sie einen Trigger auf der Tabelle, der eine UDF aufruft, die auf irgendeine Weise mit Ihrer Python-App kommuniziert.

Zu den Fallstricken gehört, was passiert, wenn ein Fehler auftritt?

Was ist, wenn es blockiert? Alles, was innerhalb eines Triggers passiert, sollte idealerweise nahezu sofort erfolgen.

Was ist, wenn es sich innerhalb einer Transaktion befindet, die zurückgesetzt wird?

Ich bin mir sicher, dass es noch viele andere Probleme gibt, an die ich noch nicht gedacht habe.

Wenn möglich, ist es besser, Ihre Datenzugriffsebene den Rest Ihrer App benachrichtigen zu lassen. Wenn Sie suchen, wann ein Programm außerhalb Ihrer Kontrolle die Datenbank ändert, haben Sie möglicherweise Pech.

Ein anderer Weg, der weniger ideal, aber imo besser ist, als ein anderes Programm aus einem Trigger heraus aufzurufen, besteht darin, eine Art "LastModified" -Tabelle festzulegen, die von Triggern mit Triggern aktualisiert wird. Überprüfen Sie dann in Ihrer App einfach, ob diese Datumszeit größer ist als bei der letzten Überprüfung.