sql >> Base de Datos >  >> RDS >> Mysql

python:¿cómo recibir notificaciones de cambios en la base de datos mysql?

Es teóricamente posible pero no lo recomendaría:

Esencialmente, tiene un disparador en la tabla que llama a un UDF que se comunica con su aplicación de Python de alguna manera.

Las trampas incluyen lo que sucede si hay un error.

¿Qué pasa si se bloquea? Idealmente, cualquier cosa que suceda dentro de un disparador debería ser casi instantánea.

¿Qué pasa si está dentro de una transacción que se deshace?

Estoy seguro de que hay muchos otros problemas en los que tampoco he pensado.

Una mejor manera, si es posible, es hacer que su capa de acceso a datos notifique al resto de su aplicación. Si está buscando cuándo un programa fuera de su control modifica la base de datos, es posible que no tenga suerte.

Otra forma que es menos ideal pero en mi opinión mejor que llamar a otro programa desde un disparador es establecer algún tipo de tabla "Última modificación" que se actualice mediante disparadores con disparadores. Luego, en su aplicación, simplemente verifique si esa fecha y hora es mayor que la última vez que lo verificó.