sql >> データベース >  >> RDS >> Mysql

MySQLトリガー-INSERTトリガー後+UDFsys_exec()の問題

    AFTERトリガーを使用しても、行はまだコミットされていません。ただし、sys_exec()はphpスクリプトが終了するまで戻らないため、AFTERトリガーを完了できないため、INSERTをコミットすることもできません。

    これは仕様によるものです。結局のところ、同じトランザクション内でさらに多くの操作を実行することも、トランザクションをロールバックすることもできます。これは、トリガーから外部プロセスを呼び出す際の問題です。外部プロセスは、データベース内のトランザクションのスコープ内のデータを見ることができません。

    このタスクをトリガーで実行しないでください。せいぜい、トリガーを使用して「フラグ」列を設定してから、フラグが設定された行を検索する外部プロセスを作成してから、そのPHPスクリプトを呼び出す必要があります。そうすれば、正常に挿入されてコミットされた行のみが処理されます。



    1. 良いリレーショナルデータベースのチュートリアルはありますか?

    2. PostgreSQLでの低レベルのリソースプーリングに関するいくつかのアイデア

    3. PostgreSQL論理レプリケーションの落とし穴

    4. 条件が異なるMySQLの複数のテーブルからデータを取得する