この記事では主に MySQL トリガー の詳細な説明と簡単な例を紹介します
MySQL トリガーの簡単な例
CREATE TRIGGER < トリガー トリガー名> --トリガーには最大 64 文字の名前を付ける必要があり、その後に区切り文字を続けることができます。これは、基本的に MySQL の他の オブジェクト
の命名方法と同様です。 -- トリガー実行時間の設定があります。イベント
の発生前または後に設定できます。
{ INSERT | UPDATE | DELETE }
-- トリガーされるイベントを設定することもできます。挿入、更新、または削除の実行中にトリガーできます。
ON <テーブル名> -- トリガーは特定のテーブルに属します。このテーブルで挿入、更新、または 削除
操作が実行されると、同じスケジュールを 2 つ与えることはできません。テーブル内の同じイベントのトリガー。
FOR EACH ROW --トリガーの実行間隔: FOR EACH ROW 句は、テーブル全体に対して 1 回ではなく、1 行おきにアクションを実行するようにトリガーに通知します。
トリガー SQL ステートメント> -- トリガーには、トリガーされる SQL ステートメントが含まれます。ここでのステートメントには、複合ステートメントを含む任意の正当なステートメントを使用できますが、ここでのステートメントは 関数 -- トリガーを作成するには (CREATE TRIGGER)、かなりの権限が必要です。すでに Root ユーザーであれば、それで十分です。これは SQL 標準とは異なります。 インスタンス テーブルtab1の作成
の制限に従います。同じ。 DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1(
tab1_id varchar(11)
);
テーブルtab2の作成
DROP TABLE IF EXISTS tab2; CREATE TABLE tab2( tab2_id varchar(11) );
トリガーの作成:
t_afterinsert_on_tab1機能: タブを追加した後、自動的にtab2にレコードを追加します1 テーブル レコード
テーブル内にテストしてくださいDROP TRIGGER IF EXISTS t_afterinsert_on_tab1;
CREATE TRIGGER t_afterinsert_on_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
insert into tab2(tab2_id) values(new.tab1_id);
END;
INSERT INTO tab1(tab1_id) values('0001');
トリガーの作成: t_afterdelete_on_tab1
機能: tab1 テーブルのレコードを削除すると、tab2 テーブルの対応するレコードが自動的に削除されますSELECT * FROM tab1;
SELECT * FROM tab2;
DROP TRIGGER IF EXISTS t_afterdelete_on_tab1; CREATE TRIGGER t_afterdelete_on_tab1 AFTER DELETE ON tab1 FOR EACH ROW BEGIN delete from tab2 where tab2_id=old.tab1_id; END;
結果を見てください
DELETE FROM tab1 WHERE tab1_id='0001';
以上がMySQLトリガーの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。