zoukankan      html  css  js  c++  java
  • 触发器

    触发器

    触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程。

    为什么使用触发器

    触发器是被指定关联到一个表的数据库对象,当一个表的特定事件发生时,它将会被激活。触发器的特点是某条MySQL语句在特定事件发生时自动执行。引发触发器执行的时间:

    • 增加一条学生记录,会自动检查年龄是否符合范围要求。
    • 每当删除一条学生信息时,自动删除其成绩表上的对应记录。
    • 每当删除一条记录时,在数据库存档表中保留一个备份副本。

    触发器与表关系密切,主要用于保护表中数据。特别是当有多个表具有一定的相互联系的时候,触发器能够让不同的表保持数据一致性。

    创建触发器

    CREATE <触发器名> <BEFORE | AFTER>
    <INSERT | UPDATE | DELETE >
    ON <表名> FOR EACH Row<触发器主体> 
    

    创建BEFORE触发器

    CREATE TRIGGER SumOfSalary
    BEFORE INSERT ON tb_emp8
    FOR EACH ROW
    SET @sum=@sum+NEW.salary;
    
    SET @sum=0;
    INSERT INTO tb_emp8
    VAlUES(1,'A',1,1000),(2,'B',1,500);
    SELECT @sum;
    

    创建AFTER触发器

    CREATE TRIGGER double_salary
    AFTER INSERT ON tb_emp6
    FOR EACH ROW
    INSERT ON tb_emp7
    VALUES (NEW.id,NEW.name,deptId,2*NEW.salary);
    
    INSERT INTO tb_emp6
    VALUES (1,'A',1,1000),(2,'B',1.'500');
    SELECT * FROM tb_emp6;
    

    修改和删除触发器

    DROP TRIGGER [IF EXISTS] [数据库名] <触发器名>
    
    DROP TRIGGER double_salary;
    
  • 相关阅读:
    与WinRT组件进行操作
    clr via c# 运行时序列化
    clr via c# 程序集加载和反射(2)
    clr via c# 程序集加载和反射集(一)
    clr via c# clr寄宿和AppDomain (一)
    cir from c# 托管堆和垃圾回收
    浏览器页面的生命周期
    C#常用泛型集合
    Params修饰符
    ASP.net应用程序的生命周期
  • 原文地址:https://www.cnblogs.com/striver20/p/13853488.html
Copyright © 2011-2022 走看看