Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mySQL-Trigger funktioniert nach dem Einfügen der Konsole, aber nicht nach dem Einfügen des Skripts

Ich denke, dass es weitaus wahrscheinlicher ist, dass Sie auf einen nicht abgefangenen Fehler stoßen, als dass der Trigger nicht ausgeführt wird, insbesondere da er erfolgreich von der Konsole ausgeführt wird.

Sie müssen isolieren, wo der Fehler auftritt – im Trigger selbst oder im aufrufenden Skript.

Drucken Sie in Ihrem Python-Skript die SQL-Anweisung aus, die Python zur Ausführung an MySQL sendet, um sicherzustellen, dass sie wie erwartet aufgebaut ist – wenn beispielsweise NEW.type nicht gleich „PRE“ ist, wird der Trigger ausgeführt, aber führt zu keinen Aktualisierungen.

Stellen Sie außerdem sicher, dass Sie die Beilage auf Fehler überprüfen. Ich bin kein Python-Programmierer, also kann ich Ihnen nicht sagen, wie das gemacht wird, aber dies scheint das zu sein, was du suchst.

Wenn Sie beides nicht zum Problem führt, kommentieren Sie den gesamten if (NEW.type = 'PRE') THEN aus blockieren und eine einfache Änderung vornehmen, z. B. NEW.type auf 'debug' setzen. Nachdem Sie sich vergewissert haben, dass der Trigger tatsächlich ausgeführt wird, testen Sie nacheinander mit mehr echtem Code, der wieder hinzugefügt wird, bis Sie das Problem isolieren.

Außerdem wäre ich in Bezug auf Marcos Kommentar überrascht, wenn das Skript nach erfolgreichem Abschluss nicht automatisch festgeschrieben würde. In der Tat würde ich diese Aussage zu jedem Skript/jeder Sprache machen.