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

mySQL Trigger funciona após a inserção do console, mas não após a inserção do script


Eu acho que é muito mais provável que você encontre um erro não detectado, em vez de que o gatilho não esteja sendo executado, principalmente porque ele é executado com sucesso no console.

Você precisa isolar onde o erro ocorre - no próprio gatilho ou no script de chamada.

Em seu script python, imprima a instrução SQL que o python envia ao MySQL para execução para garantir que ela seja construída como você espera - por exemplo, se NEW.type não for igual a 'PRE', o gatilho será executado, mas não resultará em nenhuma atualização.

Verifique também se você está verificando erros na inserção. Eu não sou um programador python, então não posso dizer como isso é feito, mas isto parece ser o que você está procurando.

Se nenhum deles o levar ao problema, comente todo o if (NEW.type = 'PRE') THEN bloqueie e faça uma modificação simples, como configurar NEW.type para 'debug'. Depois de garantir que o gatilho realmente seja executado, teste novamente sucessivamente com mais código real adicionado de volta até isolar o problema.

Além disso, wrt Marcos comenta, eu ficaria surpreso se o script não fosse auto-commit após a conclusão bem-sucedida. Na verdade, eu faria essa afirmação sobre qualquer script/linguagem.