ホームページ >データベース >mysql チュートリアル >mysqlでトリガーを作成する方法

mysqlでトリガーを作成する方法

清浅
清浅オリジナル
2019-04-28 14:59:176820ブラウズ

MySQL でトリガーを作成するには、まずトリガーに格納するテーブルを作成し、次にトリガーがアクティブ化される時刻を設定し、最後に定義された条件が満たされたときにトリガーする必要があります。トリガーに定義されたアクションを実行する ステートメント集

mysqlでトリガーを作成する方法

[推奨コース: MySQL チュートリアル]

Trigger

Trigger は MySQL のデータベース オブジェクトの 1 つで、プログラミング言語の関数とよく似ており、宣言、実行、等ただし、トリガーの実行はプログラムによって呼び出されたり、手動で開始されたりするのではなく、イベントによってトリガーおよびアクティブ化されて実行が実現されます。 DOM のイベントに似ています。

トリガーの作成

トリガーを作成するための構文は次のとおりです:

CREATE <触发器名> < BEFORE | AFTER >
<INSERT | UPDATE | DELETE >
ON <表名> FOR EACH Row<触发器主体>

文法分析

トリガー名

はトリガー名を指し、データベース内で一意です (特定のデータベースで作成された場合、データベース名は)

INSERT | UPDATE | DELETE

はトリガー イベントを表し、トリガーをアクティブにするステートメントのタイプを指定するために使用されます

INSERT : 新しい行を挿入します。テーブルが削除されるとトリガーがアクティブになります。

DELETE: テーブルからデータの行が削除されると、トリガーがアクティブになります。

UPDATE: データの行がテーブルから削除されると、トリガーがアクティブになります。テーブル内のデータが変更されました

BEFORE | AFTER

トリガーが起動された瞬間。トリガーが起動されたステートメントの前か後に起動されたかを示します。新しいデータが条件を満たしていることを確認する場合は、BEFORE オプションを使用します。トリガーをアクティブにするステートメントの実行後に複数の変更を完了する場合は、通常、AFTER オプションを使用します。

テーブル名

トリガーに関連付けられたテーブル名。このテーブルは永続テーブルである必要があります。トリガーを一時テーブルまたはビューに関連付けることはできません。テーブル上でトリガー イベントが発生すると、トリガーがアクティブになります。同じテーブルに、同じ起動時間とイベントを持つ 2 つのトリガーを含めることはできません。

トリガー本体

トリガー アクション本体には、トリガーがアクティブ化されたときに実行される MySQL ステートメントが含まれます。複数のステートメントを実行する場合は、BEGIN…END 複合ステートメント構造を使用できます。

FOR EACH ROW

は行レベルのトリガーを指し、トリガー イベントの影響を受ける行ごとにトリガー アクションをアクティブにする必要があります。

: 同じテーブル内の同じトリガー時間を持つ同じトリガー イベントに対して定義できるトリガーは 1 つだけです。トリガーは永続テーブルにのみ作成でき、一時テーブルには作成できません。

mysqlでトリガーを作成する方法

例: double_salary という名前のトリガーを作成します

double_salary
   -> AFTER INSERT ON tb_emp1
   -> FOR EACH ROW
   -> INSERT INTO tb_emp2
   -> VALUES (NEW.id,NEW.name,deptId,2*NEW.salary);
Query OK, 0 rows affected (0.25 sec)

上記のコードの意味は、double_salary のトリガーを作成することであり、トリガー条件は After です。データ テーブル tb_emp1 にデータを挿入し、同じデータをデータ テーブル tb_emp2 に挿入すると、給与は tb_emp1 に新しく挿入された給与フィールドの値の 2 倍になります。

要約: 以上がこの記事の全内容です。皆様のお役に立てれば幸いです。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。