データベース トリガーを作成するための構文は、 [CREATE <トリガー名> < BEFORE | AFTER >
ON <テーブル名> FOR EACH Row<トリガー本体>] です。トリガーには、現在のデータベース内で一意の名前が付けられます。
MySQL 5.7 では、CREATE TRIGGER ステートメントを使用してトリガーを作成できます。
(推奨学習: mysql チュートリアル)
構文形式は次のとおりです:
CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <表名> FOR EACH Row<触发器主体>
構文の説明は次のとおりです:
1. トリガー名
トリガーの名前。トリガーには、現在のデータベース内で一意の名前が必要です。特定のデータベースに作成する場合は、名前の前にデータベースの名前を付ける必要があります。
2. INSERT | UPDATE | DELETE
トリガー イベント。トリガーをアクティブにするステートメントのタイプを指定するために使用されます。
3. BEFORE | AFTER
BEFORE および AFTER (トリガーが起動される瞬間) は、トリガーがそれをアクティブにするステートメントの前または後に起動されることを示します。新しいデータが条件を満たしていることを確認する場合は、BEFORE オプションを使用します。トリガーをアクティブにするステートメントの実行後に複数の変更を完了する場合は、通常、AFTER オプションを使用します。
4. テーブル名
トリガーに関連付けられたテーブル名。このテーブルは永続テーブルである必要があります。トリガーを一時テーブルまたはビューに関連付けることはできません。テーブル上でトリガー イベントが発生すると、トリガーがアクティブになります。
同じテーブルに、同じトリガー時間とイベントを持つ 2 つのトリガーを含めることはできません。たとえば、データ テーブルの場合、同時に 2 つの BEFORE UPDATE トリガーを使用することはできませんが、BEFORE UPDATE トリガーと BEFORE INSERT トリガー、または BEFORE UPDATE トリガーと AFTER UPDATE トリガーを使用することはできます。
5. トリガー本体
トリガー アクション本体には、トリガーがアクティブ化されたときに実行される MySQL ステートメントが含まれます。複数のステートメントを実行する場合は、BEGIN…END 複合ステートメント構造を使用できます。
6. FOR EACH ROW
通常、行レベルのトリガーを指し、トリガー アクションはトリガー イベントの影響を受ける行ごとにアクティブ化する必要があります。たとえば、INSERT ステートメントを使用して複数のデータ行をテーブルに挿入する場合、トリガーは、挿入されたデータの各行に対応するトリガー アクションを実行します。
以上がデータベーストリガーの作成方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。