• 触发器trigger


    触发器trigger

    触发器(trigger):监视某种情况,并触发某种操作,它的执行是由事件来触发的,例如当对一个表进行操作( insert,delete, update)时就会激活它执行。

    触发器经常用于加强数据的完整性约束和业务规则等。 触发器创建语法四要素:
    1.监视地点(table)
    2.监视事件(insert/update/delete)
    3.触发时间(after/before)
    4.触发事件(insert/update/delete)

    触发器基本语法
    创建触发器:
    Create trigger trigger_name trigger_time trigger_event on tb_name for each row trigger_stmt;

    trigger_time :触发器的触发事件,可以为before(在检查约束前触发)
    或after(在检查约束后触发);

    trigger_event:是触发器的触发事件,包括insert、update和delete;

    tb_name: 表示建立触发器的表名,就是在哪张表上建立触发器

    trigger_stmt: 触发器的程序体,可以是一条SQL语句或者是用BEGIN和END包含的多条语句;

    FOR EACH ROW:表示任何一条记录上的操作满足触发事件都会触发该触发器。

    删除触发器:

    Drop trigger 触发器名称。
    
    • 1

    练习:
    – 创建商品表

    create table g(
    	id int primary key auto_increment,
    	name varchar(20),
    	num int
    );
    

    – 创建订单表

    create table o(
    	oid int primary key auto_increment,
    	gid int,
    	much int
    );
    

    – 插入商品
    insert into g(name,num) values(‘苹果’,10),(‘香蕉’,10),(‘桔子’,10);

    练习1: 卖了3个苹果,请更新商品表和订单表中的数据。
    – 1.往订单表插入一条记录

    insert into o(gid,much) values(1,3);
    
    • 1

    – 2.更新商品表商品1的剩余数量

    update g set num=num-3 where id=1;
    
    • 1

    – 练习2:使用触发器来完成练习1的效果。
    – 创建触发器
    – 修改结束符

    delimiter $-- 修改字符集
    create trigger trigger01 after update on g for each ROW-- 创建触发器
    
    BEGIN -- 开始
    insert into o(gid,much) values(1,3);
    END $-- 结束
    
    delimiter ;
    
    update g set num=num-3 where id=1;
    

    练习3:创建对任意商品改变的触发器
    扩展:
    new 和old 的使用:
    在这里插入图片描述NEW.columnname:新增行的某列数据
    OLD.columnname:删除行的某列数据
    代码:

    delimiter $
    create trigger tg2 after insert on o for each row 
    BEGIN
    update g set num = num-new.much where id = new.gid;
    END $
    
    delimiter ;
    
    INSERT into o(gid,much) values(2,3);
  • 相关阅读:
    第三篇、image 设置圆角的几种方式
    第二篇、为UITableViewCell 高度自适应加速 缓存cell的高度
    第一篇、Swift_搭建UITabBarController + 4UINavigationController主框架
    Quartz2D 编程指南(三)渐变、透明层 、数据管理
    Quartz2D 编程指南(二)变换、图案、阴影
    Quartz2D 编程指南(一)概览、图形上下文、路径、颜色与颜色空间
    iOS基于MVC的项目重构总结
    iOS开发路线简述
    iOS JavaScriptCore与H5交互时出现异常提示
    iOS开发小技巧
  • 原文地址:https://www.cnblogs.com/deepalley/p/13797791.html
Copyright © 2020-2023  润新知