MySQL017 トリガー
chap12
■トリガーとは
・MySQL5.0以降で利用可能。
・テーブルに対しある処理が行われると、コマンドが実行される仕組み。
■事前準備
・tb11と同じ構造で空のテーブルを用意
create table tb11m like tb11;
■トリガー作成
==============
タイミング
・before
・after
カラム値
・old.clmName
・new.clmName
注意(コマンドにより取り出せないものあり)
・INSERT 実行前× 実行後○
・DELETE 実行前○ 実行後×
・UPDATE 実行前○ 実行後○
==============
delimiter //
create trigger tr1
before delete on tb11 for each row #tb11が削除された時
begin
insert into tb11m values(old.bang, old.nama, old.tosi); #tb11mへ値を入れる
end //
delimiter ;
delete from tb11;
select * from tb11; //確認
select * from tb11m; //確認
■確認・削除
show triggers; //一覧で表示。sをつける。
drop trigger tr1;
・練習
月を入れると、その月の売上合計を返す関数を作成
delimiter //
create function f_uria(t int) returns int
begin
declare u int;
select sum(uria) into u from tb10 where tuki=t;
return u;
end //
delimiter ;
select f_uria(4);
select f_uria(5);
select f_uria(6);
select f_uria(2);
■参考
本:基礎からのMySQL