存储过程&触发器

存储过程

相当于没有返回值的函数。函数体内可以包括各种增删改查

语法:

  create procedure 函数名(参数1+类型,参数2+类型...)

    begin 

      语句块...

    end;

 1 //举例
 2     delimiter $
 3        create procedure pro1(p1 int,p2 int)
 4            begin 
 5                if(p1>p2) then
 6                     begin
 7                         select p1;
 8                     end;
 9                 else
10                     begin
11                         select p2;
12                     end;
13                 end if;
14             end;$
15         delimiter ;
1 //调用方式
2     call prol(4,5);
3 //删除存储过程
4     drop procedure 函数名;

触发器

触发器是一段在某种事件发生时自动执行的语句块。

说明:

  触发时机(2个):before,after

  触发事件(3个):insert,update,delete

  触发器内部关键字:

    new:在执行insert时,要插入的数据行。

    old:在执行delete时,要删除的数据化。

 1 //语法
 2  create trigger 触发器名 触发时机 触发事件 on 表名 for each row
 3        begin
 4          ...语句块   #注:此处不能有select语句和return返回值语句 
 5          end;
 6 //举例
 7     /*create table tab_tri1(id int);create table tab_tri2(id int);*/
 8    delimiter $
 9    create trigger tri1 before insert on tab_tri1 for each row
10       begin 
11          insert into tab_tri2 values(new.id*10); #new.id表示新插入的数据行id字段的值
12      end;$
13      delimiter ;
14   /*insert into tab_tri1 values(3);select * from tab_tri1;select * from tab_tri2;*/
15 //删除
16      drop trigger tri1;
原文地址:https://www.cnblogs.com/zwtqf/p/6740886.html