• mysql触发器 学习


    1.       说明:

    触发器的定义就是说某个条件成立的时候,你触发器里面所定义的语句就会被自动的执行。因此触发器不需要人为的去调用,也不能调用。然后,触发器的触发条件其实在你定义的时候就已经设定好的了。这里面需要说明一下,触发器可以分为语句级触发器和行级触发器。简单的说就是语句级的触发器可以在某些语句执行前或执行后被触发。而行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。

    2.       触发器作用:

    安全性;审计;实现复杂的数据完整性规则;实现复杂的非标准的数据库相关完整性规则;同步实时地复制表中的数据

    3.       语法结构:

    create trigger trigger_name (BEFORE|AFTER) (delete|update|insert) on table_name

    for each row

    BEGIN

    要触发的sql语句;

    END;;

    4.       例子1:

    DELIMITER ;;    定义sql命令结束符

    /*

    drop trigger D1;;  删除触发器

    drop trigger D1;;

    */

    create  trigger D1 BEFORE delete on employee

    for each row      表示行级触发器

    BEGIN

    insert into tg_employee_log set name=old.name,name_id=old.employee_id,action='delete';

    update tg_assets_info set as_status='2',user=205 where user=old.employee_id;

    END;;                 

    表示在删除employee里的数据之前,在tg_employee_log表里面插入一条数据,并且更新tg_assets表的数据。

    注意:这里用到的old.employee_id,表示删除之前的数据。

    5.       例子2:

    create  trigger D2 AFTER insert on employee

    for each row

    BEGIN

    insert into tg_employee_log set name=new.name,name_id=new.employee_id,action='add';

    END;;

    表示在employee插入之后,在tg_employee_log表里插入一条数据。

    注意:这里用到了new.employee_id,表示插入之后产生的新数据。

    DELIMITER ;

    create trigger trigger_name (BEFOFE|AFTER) (delete|update|insert) on table_name
    
    for each row
    
    BEGIN
    
    要解发的sql语句
    
    END;;
    
    
    
    
    
    
    
    CREATE TRIGGER `tb_trigger_insert` AFTER INSERT ON `tb_trigger`
    
    FOR EACH
    
    ROW INSERT INTO `tb_trigger_log` SET `action` = 'insert',`actionid` = new.id;
    
    
    
    
    CREATE TRIGGER `delete_tb_sys_template_source` BEFORE DELETE ON `tb_sys_template`
    FOR EACH ROW
    DELETE FROM `tb_sys_template_source` WHERE `templateid`=old.id;
    
    
    
    CREATE TRIGGER `delete_tb_sys_template_source` BEFORE DELETE ON `tb_sys_template` 
    FOR EACH ROW 
    DELETE FROM `tb_sys_template_source` WHERE `templateid` = old.id;
    

      

  • 相关阅读:
    [收藏]15分钟内快速构建数据访问层
    asp.net 水晶报表主从表关联问题
    C#基础——关于类
    C#和Sql的时间操作心得(一)
    DataGrid导出到Word/Excel文档
    [收藏]SQL Server 索引结构及其使用
    .NET环境下水晶报表使用总结
    读写文件之日志文件
    HashTable实现购物车,抛弃数据库实现方式
    触碰心灵34句
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/3251715.html
Copyright © 2020-2023  润新知