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

mySQL Trigger virker efter konsolindsættelse, men ikke efter scriptindsættelse

Jeg tror, ​​at det er langt mere sandsynligt, at du støder på en ufanget fejl, snarere end at triggeren ikke udføres, især da den udføres med succes fra konsollen.

Du skal isolere, hvor fejlen opstår - i selve triggeren eller i det kaldende script.

I dit python-script skal du udskrive den SQL-sætning, som python sender til MySQL til eksekvering for at sikre, at den er konstrueret, som du forventer - hvis NEW.type f.eks. ikke svarer til 'PRE', vil triggeren have eksekveret, men vil ikke resultere i nogen opdateringer.

Sørg også for, at du tjekker for fejl på indsatsen. Jeg er ikke en python-programmør, så jeg kan ikke fortælle dig, hvordan det gøres, men dette ser ud til at være det du leder efter.

Hvis ingen af ​​disse fører dig til problemet, skal du kommentere hele if (NEW.type = 'PRE') THEN blokere og lave en simpel ændring, såsom at indstille NEW.type til 'debug'. Efter at have sikret dig, at udløseren faktisk udføres, skal du genteste successivt med mere af den rigtige kode tilføjet igen, indtil du isolerer problemet.

Med hensyn til Marcos kommentar ville jeg også blive overrasket, hvis manuskriptet ikke automatisk blev overført efter vellykket afslutning. Faktisk vil jeg komme med denne udtalelse om ethvert script/sprog.



  1. Sådan tester du, om Ci indsatte data med succes

  2. Parsing af en xml-fil og lagring af den i en database

  3. Skift eller indstil MySQL Long Query Time Value for log-langsomme-forespørgsler

  4. sql/mysql-filter, der kun inkluderer den maksimale værdi