最初にデータの追加、削除、および変更が完了してからトリガーされるステートメントは、監視対象の追加、削除、および変更の操作よりも後であり、前の追加、削除、および変更の操作には影響しません。注文レコードが最初に挿入され、その後、製品の数量が更新されます。
before は、最初にトリガーを完了し、次に追加、削除、および変更を行います。今後の操作を判断して変更する機会です。
ケース: 積 g テーブルの juzi の数は 20 しかありませんが、順序で o に 20 を超える数が追加されている場合、この時点でそれを解決する方法
#创建触发器test4 CREATE TRIGGER test4 AFTER INSERT ON `ord` FOR EACH ROW BEGIN UPDATE goods SET num= num - new.much WHERE goods_id = new.gid; END$$前にトリガーを使用します:最初にトリガーし、追加または削除するかどうかを判断してから、注文の最大数量が在庫に応じて変更されます。もちろん、私は値を固定しただけです。実際には、ステートメントを使用して動的な在庫値を取得できます。
#创建触发器test5 CREATE TRIGGER test5 BEFORE INSERT ON `ord` FOR EACH ROW BEGIN IF new.much >26 THEN SET new.much = 26; END IF; UPDATE goods SET num= num - new.much WHERE goods_id = new.gid; END$$上記は、[MySQL 14] トリガーの前後の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。