1.はじめに
トリガーは、特定の状況を監視し、特定の操作をトリガーするために使用されます。これは、テーブルイベントに関連する特別なストアドプロシージャです。その実行はプログラムによって呼び出されるのではなく、イベントによってトリガーされます。たとえば、テーブルに対する挿入、削除、更新操作が実行をトリガーします。
2.文法
create trigger triggerName triggerTime triggerEvent
on tableName for each row triggerStmt
- triggerName:トリガー名
- triggerTime:トリガー時間、値は前後です
- triggerEvent:トリガーイベント、値は挿入、更新、削除です
- tableName:トリガーによって監視されるテーブルの名前
- triggerStmt:ステートメントの実行をトリガーします。古いものと新しいものを使用して、変更の前後のレコードコンテンツを参照できます。
- new.columnName:挿入トリガーイベントで新しく挿入されたデータを取得します
- old.columnName:更新および削除トリガーイベントで更新および削除されたデータを取得します
3.戦闘のトリガー:新しいユーザーにメールを送信します
create table user_info(
id int not null auto_increment primary key,
name varchar(30),
email varchar(50)
);
insert into user_info(id, name, email) values(1, '柳峰', '[email protected]');
insert into user_info(id, name, email) values(2, '林涛','[email protected]');
create table email_info(
id int not null auto_increment primary key,
email varchar(50),
content text,
send_time datetime
);
新しいユーザーが挿入されると、電子メールが自動的にユーザーに送信されます。
delimiter //
create trigger send_email_trigger after insert on user_info for each row begin
insert into email_info(email, content, send_time) values(new.email, '欢迎加入MySQL阵营! ', now());
end
//
delimiter ;