Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

python:como obter notificações para alterações no banco de dados mysql?


É teoricamente possível, mas eu não recomendaria:

Essencialmente, você tem um gatilho na tabela que chama uma UDF que se comunica com seu aplicativo Python de alguma forma.

Armadilhas incluem o que acontece se houver um erro?

E se bloquear? Tudo o que acontece dentro de um gatilho deve ser quase instantâneo.

E se estiver dentro de uma transação que é revertida?

Tenho certeza de que há muitos outros problemas nos quais não pensei também.

Uma maneira melhor, se possível, é fazer com que sua camada de acesso a dados notifique o restante do seu aplicativo. Se você está procurando quando um programa fora de seu controle modifica o banco de dados, pode estar sem sorte.

Outra maneira que é menos ideal, mas é melhor do que chamar outro programa de dentro de um gatilho, é definir algum tipo de tabela "LastModified" que é atualizada por gatilhos com gatilhos. Em seguida, no seu aplicativo, verifique se esse datetime é maior do que quando você verificou pela última vez.