mysql的存储过程和触发器

声明变量

声明变量:
    声明方式: =  := 两种都可以,如果时查询语句,需要用:=
        set @变量名 = 1
        select  @tang:=money from bank  (格式:select @变量名:=字段 from 表)
    查看变量值:
        select @变量名

存储过程:
存储过程是数据库中的一个重要功能,存储过程可以用来转换数据、数据迁移、制作报表,它类似于编程语言,一次执行成功,就可以随时被调用,完成指定的功能操作

存储过程:
    定义存储过程:
        create procedure test(in a int, in b int, out sum int)
begin
   set sum = a + b;    (后面记得加;)
end
test为存储过程名,(这里面应当按照格式 in xxx int)这是要获取的值,(out xxx int)这是要返回的值,相当于return
    调用存储过程:
        call test(10, 20, @result)  #这里需要传三个参数,前两个分别代表a、b,后面的为变量接返回值的
        select @result  //查看返回值
###使用存储过程将进行累加和####
create procedure test1(in count int)
begin
   declare i int default 1;    //这里时定义变量,使用declare进行定义变量i且默认值为1
   declare sum int default 0;  //定义变量sum默认值为0
   while i <= count do         //使用while循环,这里的while 后面是 do
      set sum=sum+i;      //没句语句后面记得加;
      set i=i+1;
   end while;              //结束循环
   select sum;             //查询sum的值
end
//也支持if循环,和循环嵌套,
if格式:
if 条件 then
    xxxxxx;
else   
    xxxxxxx;
end if;
###############调用
call test1(20)

删除存储过程:
    drop procedure 存储过程名

触发器

触发器(trigger):
    自动调用,
    创建触发器:
        create trigger 触发器名
        before|after  动作(delete、inser、update)
        on 表名 for each row
        degin
            动作
        end;
    删除触发器:
        drop trigger 触发器名
##########################
create table bank_bak1 select * from bank limit 0   //复制表bank结构为表bank_bak1
create table bank_bak1 select * from bank           //复制表bank结构和数据为bank_bak1
create table bank_bak2 like bank                //复制表结构
#################################
create trigger trigger_test         //创建触发器
before delete                   //delete动作触发
on bank for each row            //bank表
begin
insert into bank_bak1(name, money) values(old, name, old, money);
//这里是当触发后执行的操作:在bank_bak1表中插入数据,old为原来的意思,就是原来的数据插入到备份表中
end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值