zoukankan      html  css  js  c++  java
  • 触发器实现源表操作(增,删,改)自动补录操作日志

    1:源表数据修改时将修改的数据插入临时表,标记字段为修改
    2:源表数据删除时将删除数据插入临时表,编辑字段为删除
    3:源表数据新增时将新增数据插入临时表,标记字段为新增
    一:定义临时表字段
    1:查看源数据testb表
    -------------如何修改mysql已经建好表的编码------------------------------
    ALTER TABLE  表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    2:创建第一个触发器---插入触发器
     create  trigger tri_userC_insert AFTER insert
     on `usera` FOR EACH ROW
     begin
     insert into userc(idC,nameC,ageC,flogS,flog_time) select id,name,age,'插入',now() from usera where id   not in (select idC from `userc`);
     end
    3:创建第二个触发器---更新触发器
     create  trigger tri_userC AFTER update
     on `usera` FOR EACH ROW
     begin
     set @point=(select name from `usera` where id = OLD.id );       
     set @point02=(select age from `usera` where id = OLD.id );
     if @point != old.name then
     update `userc` set nameC=@point where idC=OLD.id;
     update `userc` set flogS='更新' where idC=OLD.id;
     update `userc` set flog_time=now() where idC=OLD.id;
     end if;
     if @point02 != old.age then
     update `userc` set ageC=@point02 where idC=OLD.id;
     update `userc` set flogS='更新' where idC=OLD.id;
     update `userc` set flog_time=now() where idC=OLD.id;
     end if;
     end
    4:创建第三个触发器---删除触发器
     create  trigger tri_userC_delete AFTER delete
     on `usera` FOR EACH ROW
     begin
     update userc set flogs = '删除' where idC not in (select id from `usera`);
     update userc set flog_time = now() where idC not in (select id from `usera`);
     end
    5:建表语句(A表)
     CREATE TABLE `usera` (
       `id` int(10) NOT NULL,
       `name` varchar(50) DEFAULT NULL,
       `age` int(3) DEFAULT NULL,
       PRIMARY KEY (`id`)
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    6:建表语句(C表)
     CREATE TABLE `userc` (
       `idC` int(255) NOT NULL,
       `nameC` varchar(255) DEFAULT NULL,
       `ageC` int(255) DEFAULT NULL,
       `flogs` varchar(255) DEFAULT NULL,
       `flog_time` datetime DEFAULT NULL
     ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
     
     
  • 相关阅读:
    Zabbix poller processes more than 75% busy
    标签无效 "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" 预计。
    Received empty response from Zabbix Agent at[172.16.1.51]. Assuming that agent dropped connection because of access permissions
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    Received empty response from Zabbix Agent at [172.16.1.7]...
    Too many open files
    Object.defineProperty之observe实现
    深拷贝 deepAssign
    提交操作自动遮蔽实现之ajax
    js检测输入域的值是否变化
  • 原文地址:https://www.cnblogs.com/zja001/p/10095436.html
Copyright © 2011-2022 走看看