ホームページ >データベース >mysql チュートリアル >MySQL UPDATE トリガー (更新) とトリガーの詳細な分析
UPDATEトリガー
UPDATEトリガーは、UPDATEステートメントの実行前または後に実行されます。 以下の点を知っておく必要があります:
1. UPDATE トリガー コードでは、OLD という名前の仮想テーブルを参照して以前の (UPDATE ステートメントの前の) 値にアクセスし、NEW という名前の仮想テーブルを参照して新しい値にアクセスできます。更新の値。
次の例では、状態の略語が常に大文字であることを保証します (UPDATE ステートメントで大文字か小文字が指定されているかに関係なく):
入力:
create trigger updatevendor before update on vends for each row set new.vend_state = upper(new.vend_state);
分析: 明らかに、データのサニタイズは UPDATE ステートメントの前に行う必要があります。 like この例でも同じです。行が更新されるたびに、NEW.vend_state の値 (テーブル行の更新に使用される値) が Upper(NEW.vend_state) に置き換えられます。
トリガーのさらなる紹介
この章を終える前に、トリガーを使用する際に覚えておく必要がある重要なポイントをいくつか紹介しましょう。 1. 他の DBMS と比較すると、MySQL 5 でサポートされるトリガーは非常に初歩的です。将来の MySQL リリースではトリガーのサポートを改善および強化する計画があります。
2. トリガーの作成には特別なセキュリティ アクセスが必要になる場合がありますが、トリガーの実行は自動的に行われます。 INSERT、UPDATE、または DELETE ステートメントを実行できる場合は、関連するトリガーも実行できます。
3. データの一貫性 (大文字小文字、形式など) を保証するためにトリガーを使用する必要があります。このタイプの処理をトリガーで実行する利点は、クライアント アプリケーションに関係なく、処理が常に発生し、透過的に実行されることです。
4. トリガーの非常に有意義な使用法は、監査証跡を作成することです。トリガーを使用すると、変更 (必要に応じて前後の状態も) を別のテーブルに記録することが非常に簡単になります。
5. 残念ながら、CALL ステートメントは MySQL トリガーではサポートされていません。これは、ストアド プロシージャをトリガー内から呼び出すことができないことを意味します。必要なストアド プロシージャ コードをトリガー内にコピーする必要があります。
【関連おすすめ】
1.
MySQLの無料ビデオチュートリアル4. mysql トリガーの概要とトリガーの作成および削除方法
5.文字セットと照合順序の使用に関する MySQL チュートリアル
以上がMySQL UPDATE トリガー (更新) とトリガーの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。