zoukankan      html  css  js  c++  java
  • MySQL触发器示例(8)

    什么是触发器

    需求:出于审计目的,当有人往表users插入一条记录时,把插入的uid,uname,插入动作和操作时间记录下来。

    Delimiter $$
    CREATE  trigger tr_users_insert after insert on users  
    for each row 
    begin  
      insert into oplog(uid,uname,action,optime)     
      values(NEW.uid,NEW.uname,'insert',now()); 
    End;
    $$
    Delimiter ;

    1.创建触发器使用create trigger 触发器名
    2.什么时候触发?After insert on users,除了after还有before,是在对表操作之前(before)或者之后(after)触发动作的。
    3.对什么操作事件触发?after insert on users ,操作事件包括insert,update,delete
    4.对什么表触发?after insert on users   
    5.影响的范围?For each row
    触发器:与函数、存储过程一样,触发器是一种对象,它能根据对表的操作事件,触发一些动作,这些动作可以是insert,update,delete等修改操作。

    生产环境触发器实例

    需求:出于 审计目的,当删除users表时,记录删除前该记录的主要字段值

    Delimiter $$
    CREATE  trigger tr_users_delete before delete on users  
    for each row 
    begin   
       insert into oplog(uid,uname,action,optime,old_value,new_value)       
       values(OLD.uid,OLD.uname,'delete',now(),OLD.regtime,OLD.regtime); 
    End;
     $$
    Delimiter ;
  • 相关阅读:
    oracle修改字符编码
    oracle修改约束列
    oracle非空约束
    Linux修改字符集
    修改oracle字符集合
    word问题禁止宏
    增加修改表列
    oracle增加sequence
    增加 修改oracle约束条件
    oracle用户 密码永不过期
  • 原文地址:https://www.cnblogs.com/lirunsheng/p/10998294.html
Copyright © 2011-2022 走看看