ねこきっくぱんちのメモ帳

ITに関することいろいろめも。たまにアニメ。

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