Mysql
 sql >> Database >  >> RDS >> Mysql

python:come ottenere notifiche per le modifiche al database mysql?

Teoricamente è possibile ma non lo consiglierei:

In sostanza hai un trigger sul tavolo che chiama un UDF che comunica in qualche modo con la tua app Python.

Le insidie ​​includono cosa succede se si verifica un errore?

E se si blocca? Tutto ciò che accade all'interno di un trigger dovrebbe idealmente essere quasi istantaneo.

Cosa succede se si trova all'interno di una transazione di cui viene eseguito il rollback?

Sono sicuro che ci sono molti altri problemi a cui non ho pensato altrettanto bene.

Un modo migliore, se possibile, è che il livello di accesso ai dati informi il resto dell'app. Se stai cercando quando un programma al di fuori del tuo controllo modifica il database, allora potresti essere sfortunato.

Un altro modo meno ideale ma meglio che chiamare un altro programma dall'interno di un trigger è impostare una sorta di tabella "LastModified" che viene aggiornata dai trigger con i trigger. Quindi nella tua app controlla se quella data e ora è maggiore di quando hai controllato l'ultima volta.