sql >> Databáze >  >> RDS >> Mysql

Spouštěče MySQL – PO VLOŽENÍ trigger + problém UDF sys_exec().

I když použijete spouštěč AFTER, řádek ještě není potvrzen. Ale sys_exec() se nevrátí, dokud se php skript neukončí, takže spouštěč AFTER se nemůže dokončit, a proto také nemůžete potvrdit INSERT.

Toto je záměrné. Koneckonců, můžete provést více operací v rámci stejné transakce, nebo můžete transakci vrátit zpět. To je problém s vyvoláním externích procesů ze spouštěče:externí procesy nemohou vidět data v rámci transakce v databázi.

Tento úkol byste neměli dělat se spouštěčem. V nejlepším případě byste měli použít spouštěč k nastavení sloupce "příznak" a poté napsat externí proces, který vyhledá řádky s nastaveným příznakem, a poté vyvolat tento skript PHP. Tímto způsobem budou zpracovány pouze řádky, které byly úspěšně vloženy A potvrzeny.



  1. Vypuštění připojeného uživatele ze schématu databáze Oracle 10g

  2. PŘÍPAD SQL:Poznejte a vyhněte se 3 méně známým potížím

  3. Nelze najít microsoft.sqlserver.batchparser.dll

  4. Jak objednávat podle data v T-SQL