sql >> Database >  >> RDS >> Mysql

MySQL-triggers - NA INSERT trigger + UDF sys_exec() probleem

Zelfs als u een AFTER-trigger gebruikt, is de rij nog niet vastgelegd. Maar sys_exec() keert pas terug als het php-script wordt afgesloten, dus de AFTER-trigger kan niet worden voltooid, daarom kun je de INSERT ook niet vastleggen.

Dit is zo ontworpen. U kunt immers meer handelingen binnen dezelfde transactie doen, of u kunt de transactie terugdraaien. Dat is het probleem met het aanroepen van externe processen vanuit een trigger:externe processen kunnen geen gegevens zien binnen het bereik van de transactie in de database.

Je zou deze taak niet met een trigger moeten doen. In het beste geval zou je de trigger moeten gebruiken om een ​​"vlag"-kolom in te stellen en vervolgens een extern proces te schrijven om naar rijen te zoeken met de vlag ingesteld en dan dat PHP-script aan te roepen. Op die manier worden alleen rijen verwerkt die met succes zijn ingevoegd EN vastgelegd.



  1. Reconstrueer stand-by DB

  2. Wat is de beste manier om de eerste twee records van elke groep te selecteren met een SELECT-opdracht?

  3. Een MySQL-schema importeren naar Xcode als een CoreData-gegevensmodel

  4. Het installatieprogramma voor MySql Workbench vereist dat Visual C++ 2015 Redistributable Package is geïnstalleerd, maar het is al geïnstalleerd