存储过程
相当于没有返回值的函数。函数体内可以包括各种增删改查
语法:
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;