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

mySQL Trigger funziona dopo l'inserimento nella console, ma non dopo l'inserimento dello script

Penso che sia molto più probabile che tu stia riscontrando un errore non rilevato, piuttosto che il trigger non viene eseguito, soprattutto perché viene eseguito correttamente dalla console.

È necessario isolare dove si verifica l'errore:nel trigger stesso o nello script chiamante.

Nel tuo script python, stampa l'istruzione SQL che python invia a MySQL per l'esecuzione per assicurarti che sia costruita come ti aspetti, ad esempio, se NEW.type non è uguale a "PRE", il trigger sarà stato eseguito, ma non comporterà alcun aggiornamento.

Assicurati anche di controllare la presenza di errori nell'inserto. Non sono un programmatore Python, quindi non posso dirti come è fatto, ma questo sembra essere quello che stai cercando.

Se nessuno di questi ti porta al problema, commenta l'intero if (NEW.type = 'PRE') THEN bloccare ed eseguire una semplice modifica, come impostare NEW.type su 'debug'. Dopo esserti assicurato che il trigger venga effettivamente eseguito, ripetere il test in successione aggiungendo più codice reale fino a quando non si isola il problema.

Inoltre, rispetto al commento di Marcos, sarei sorpreso se lo script non si impegnasse automaticamente al completamento con successo. In effetti, farei questa affermazione su qualsiasi script/linguaggio.