MySQL でトリガーを作成および削除する方法を調べる

PHPz
リリース: 2023-04-19 15:07:15
オリジナル
892 人が閲覧しました

MySQL のトリガーは、特殊なタイプのストアド プロシージャです。これは、事前に定義された操作 (テーブル上で DELETE、UPDATE、または INSERT 操作が実行されるときなど) が発生したときに自動的に実行できるテーブル関連のアクションのセットです。テーブル。 。トリガーは、テーブル上で特別な構文を定義することにより、開発者に柔軟なプログラミング オプションを提供します。この記事では、MySQL でトリガーを作成および削除する方法について説明します。

MySQL トリガーの作成

MySQL でトリガーを作成するには、CREATE TRIGGER ステートメントを使用する必要があります。構文は次のとおりです:

CREATE TRIGGER trigger_name 
BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name
FOR EACH ROW 
BEGIN 
   -- 触发器执行的操作
END;
ログイン後にコピー

CREATE TRIGGER ステートメントは次のとおりです。次のように指定します。

  • trigger_name トリガーの名前。
  • BEFORE | AFTER この操作をいつトリガーするか。
  • INSERT|UPDATE|DELETE トリガーに関連付けられたアクション。
  • table_name トリガー操作が実行されるテーブルの名前。
  • FOR EACH ROW は、トリガーが毎回実行する行数を指定します。
  • BEGIN と END は、トリガーで実行される SQL ステートメントを定義します。

たとえば、次の CREATE TRIGGER ステートメントは、ユーザー テーブルにデータ行が挿入されるときに実行されるトリガーを定義します。

CREATE TRIGGER my_trigger 
BEFORE INSERT ON user
FOR EACH ROW
BEGIN
  INSERT INTO user_log (user_id, action) VALUES (NEW.id, 'inserted');
END;
ログイン後にコピー

このトリガーは、INSERT 操作ごとに実行されます。以前に実行された user テーブルに、挿入されたデータ ID と操作の種類 (挿入) を user_log テーブルに挿入します。

MySQL トリガーの削除

MySQL では、トリガーを削除するには DROP TRIGGER ステートメントを使用する必要があります。構文は次のとおりです:

DROP TRIGGER [IF EXISTS] trigger_name;
ログイン後にコピー

DROP TRIGGER ステートメントでは、以下:

  • IF EXISTS このオプションを設定すると、削除しようとしているトリガーが存在しない場合でもエラーは返されません。
  • trigger_name 削除するトリガーの名前。

次は実際的な例です。トリガー my_trigger を削除する場合は、次のステートメントを使用できます:

DROP TRIGGER IF EXISTS my_trigger;
ログイン後にコピー

DROP TRIGGER ステートメントでは、IF EXISTS を使用します。削除しようとしているトリガーが実際に存在することを確認するオプション。このオプションを使用しない場合、存在しないトリガーを削除しようとするとエラーが返されます。

概要

MySQL のトリガーは、特定の状況下でアクションを自動的に実行する構成可能な方法です。トリガーは BEFORE または AFTER イベントで実行でき、INSERT、UPDATE、および DELETE 操作に対して異なるトリガーを定義できます。 MySQL トリガーを作成するには CREATE TRIGGER ステートメントを使用する必要があり、トリガーを削除するには DROP TRIGGER ステートメントを使用する必要があります。 MySQL トリガーについて詳しく知りたい場合は、MySQL の公式ドキュメントを参照してください。

以上がMySQL でトリガーを作成および削除する方法を調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート