ホームページ >データベース >mysql チュートリアル >MySQL の高度なトリガー
トリガーは、特定のデータ操作 (挿入/更新/削除) を監視し、関連する操作 (挿入/更新/削除) をトリガーできる特別なタイプのトランザクションです。
次のイベントを見てください:
注文と在庫削減のロジックを完了します
o (gid,num) 値に挿入します // ステートメントを挿入します
;Update g set Goods_num = Goods_num - 3 where id = 2;//更新プロセス
これら 2 つのロジックを全体としてみなすことも、---> を挿入すると update につながります
トリガーは上記の問題を解決できます。質問です。
特定のテーブルの変更を監視し、特定の変更が発生したときに操作をトリガーできます。
トリガーを作成するための構文
トリガーの作成triggerName
挿入後/挿入前/テーブル名を更新/削除
各行 #この文は修正されています
Begin
Sqlステートメント; #insert/update/deleteの範囲内で1つ以上の文
End;
の構文削除トリガー:
ドロップトリガー トリガー名
トリガーの表示
トリガーの表示
トリガー内の行の値の参照方法
挿入の場合、新しい行はnew、
で表されます行内の各列の値は、列名で表されます
削除された行を参照したい場合は、old を使用して表します。 、old.列名は、削除された行の値を参照できます。
変更された行は、
変更前のデータを参照します。変更前の行の値
変更されたデータは new で表されます。列名は変更された値を参照します
トリガー
が完了した後、トリガーの前に追加、削除、および変更を実行します。
によってトリガーされるステートメントは、監視対象の追加、削除、および変更よりも後であるため、以前の追加、削除、および変更のアクションには影響しません。Before は最初にトリガーし、次に追加、削除、および変更を行うステートメントです。
監視の追加、削除、および変更が発生する前に、今後の操作を判断して変更する機会があります
。典型的なケース:
注文数量が 5 を超える場合、悪意のある注文であると判断し、
注文した商品の数量を強制的に 5 に変更します
どのトリガーかを確認してください: