触发器

 

触发器:

   和存储过程比较

1 、共同点

针对表的操作(SQL语句集合)

2、 区别点

不需要调用

    触发器在当前版本里不太稳定,不建议在有重要的数据的数据库里使用

约束:

   目的:保证数据库的安全(独立性、共享性)派出数据冗余;

   域完整性约束(列):数据类型、格式、值域范围(enum,set)、是否为空、自动增长等;

   实体完整性约束(行):自己整理

   用户自定义约束:

     例如:年龄  int  0-100

   参照完整性约束:外键

练习:使用触发器完成check约束

1、         创建触发器

  语法 :

create  procedure  名称(参数)

begin

   流程控制语句

   SQL语句集合

end

 

 

create  trigger  名称  触发时间(after|before)  触发事件(insert 、update、delete)

on  表名  for  each  row 

begin

SQL语句集合

end

 

练习:对tb1创建触发器,执行插入insert 语句后,将用户变量str赋值“working”;

练习2:对tb1(字段s1)创建触发器,删除数据后,将t2(字段s2)里对应的记录同步删除;

       第一步:创建触发器

       create  trigger  tb1  delete  after  delete  on  t1  for  each  row

       begin

         局部变量、用户变量等;

         流程控制语句;

         SQL语句集合;

         call  存储过程名()

         delete  from  t1  where  s2=OLD.s1;

end

       第二步:激活触发器

         delete  from  tb1;     

       第三步:验证结果

          select  *  from  t1;

          结果:tb1中的数据都没了,t1中的数据和tb1中的相同数据被删除

删除触发器:

   drop  trigger 名称

 

练习3:

   t1(s1  int)

   t2(s2  int)

   记录30,60,90

   当t1表里修改数据后小于60,则在t2表将对应记录改为0;

                      大于60,…………………………….2;

   create trigger  t1_update  after  update  on  t1  for  each  row

   update  t2  set  s2=0;

  

   update  t1  set s1=20;

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值