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

     Mysql实现插入,修改,删除触发器,在日志表记录数据

     

    DELIMITER $$
    
    USE `hb`$$
    
    DROP FUNCTION IF EXISTS `insert_log`$$
    
    CREATE DEFINER=`root`@`localhost` FUNCTION `insert_log`(op_action INT, rowid VARCHAR(32), table_name VARCHAR(100)) RETURNS VARCHAR(32) CHARSET utf8
    BEGIN  
         SET @id = REPLACE(UUID(), '-', '');
         SET @nowtime = NOW();
         INSERT INTO log_update_message(dmg_id, dmg_action, dmg_table_name, dmg_rowid, dmg_create_time, dmg_state, dmg_update_time, dmg_update_count)
         VALUES(@id, op_action, table_name, rowid, @nowtime, 0, @nowtime, 0);
         RETURN @id;
    END$$
    
    DELIMITER ;

    删除操作

    DELIMITER $$
    
    USE `hb`$$
    
    DROP TRIGGER /*!50032 IF EXISTS */ `asm_user_delete`$$
    
    CREATE
        /*!50017 DEFINER = 'root'@'localhost' */
        TRIGGER `asm_user_delete` AFTER DELETE ON `asm_user` 
        FOR EACH ROW BEGIN
         SET @table_name = 'asm_user';
         SET @rowid = old.usr_id;
         SET @action = 2;
         SET @id = hb.`insert_log`(@action, @rowid, @table_name);
    END;
    $$
    
    DELIMITER ;

    插入操作

    DELIMITER $$
    
    USE `hb`$$
    
    DROP TRIGGER /*!50032 IF EXISTS */ `asm_user_insert`$$
    
    CREATE
        /*!50017 DEFINER = 'root'@'localhost' */
        TRIGGER `asm_user_insert` AFTER INSERT ON `asm_user` 
        FOR EACH ROW BEGIN
         SET @table_name = 'asm_user';
         SET @rowid = new.usr_id;
         SET @action = 0;
         SET @id = hb.`insert_log`(@action, @rowid, @table_name);
    END;
    $$
    
    DELIMITER ;

    修改操作

    DELIMITER $$
    
    USE `hb`$$
    
    DROP TRIGGER /*!50032 IF EXISTS */ `asm_user_update`$$
    
    CREATE
        /*!50017 DEFINER = 'root'@'localhost' */
        TRIGGER `asm_user_update` AFTER UPDATE ON `asm_user` 
        FOR EACH ROW BEGIN
         SET @table_name = 'asm_user';
         SET @rowid = old.usr_id;
         SET @action = 1;
         SET @id = hb.`insert_log`(@action, @rowid, @table_name);
    END;
    $$
    
    DELIMITER ;
  • 相关阅读:
    window 窗口对象 Javascript语言描述
    ASP.NET JScript公共类(非常有用)
    ASP.NET上传文件函数
    C#两种方式获取指定文件夹下所有子目录及文件
    模式窗口showModalDialog的用法总结
    DetailsView结合fileupload的使用
    JS连续向上滚动代码
    【原创】C# 递归获取指定目录的子目录及其所有文件
    【原创】C# 将虚拟目录下文件转换成DataTable
    【原创】ASP.NET C# 获取指定目录文件的排序和删除
  • 原文地址:https://www.cnblogs.com/zhanhengzong/p/7346493.html
Copyright © 2011-2022 走看看