• 触发器


    触发器

    触发器(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;
    
  • 相关阅读:
    java并发计算的几种基本使用示例
    axios、ajax和xhr前端发送测试
    Spring注解
    Android菜鸟教程笔记
    普通二叉树操作
    MyBatis
    mysql的select语句总结与索引使用
    sys.argv的意义[转]
    硬件小白学习之路(1)稳压芯片LM431
    FPGA小白学习之路(6)串口波特率问题的处理
  • 原文地址:https://www.cnblogs.com/striver20/p/13853488.html
Copyright © 2020-2023  润新知