mysql call関数&トリガ

1043 ワード

call関数
? procedure
  t1        10000     
\d //          //     
mysql> create procedure p2()
    begin
    set @i=1;
    while @i<=10000 do
   insert into t1(id,name) values(@i,concat("user",@i));
   set @i=@i+1;
   end while;
   end //

  \d ;
  
  show procedure status;   
  show create procedure p1\G           
  
  call p2; #  p2

フリップフロップ
t 1 t 2の2つのテーブルがそっくりt 1のデータが変動するとt 2テーブルも変動する
? trigger 
 \d // 
      t1           t2
 mysql> create trigger t_1 before insert on t1 for each row
    begin
    insert into t2(name) values(new.name);
   end //
    \d ;
    
    show triggers;        
    
  \d // 
 mysql> create trigger d_1 before delete on t1 for each row  #  
    -> begin
    ->delete from t2 where name=old.name;
    -> end //
    \d ;   
    
    
   \d // 
 mysql> create trigger u_1 before update on t1 for each row  #gai
    -> begin
    -> update t2 set name=new.name where name=old.name;
    -> end //
    \d ;