酷站(www.ku0.com)-致力于为互联网从业者提供动力!

热门关键词:  企业  as  baidu  c4rp3nt3r  美女
酷站

【云小站】新老客都返现+现金红包+瓜分60万奖池
酷站

Mysql

旗下栏目: Mysql MsSql DB2 Redis mariadb Access oracle MongoDB PostgreSQL SQLite mssql2005 mssql2008

mysql日志触发器的代码介绍

来源:互联网搜集 作者:秩名 人气: 发布时间:2020-02-02
本篇文章主要介绍了mysql日志触发器的代码介绍,对大家的学习或者工作具有一定的参考学习价值,感兴趣的小伙伴们可以参考一下,也感谢大家对酷站(ku0.com)的支持。

sql语句:

DROP TRIGGER
IF
EXISTS sys_menu_edit;
CREATE TRIGGER sys_menu_edit BEFORE UPDATE ON sys_menu FOR EACH ROW
BEGIN
INSERT INTO `g4m`.`sys_log` ( `table_name`, `val_id`, `data_json` )
VALUES
(
'sys_menu',
old.id,
CONCAT(
"{",
CONCAT_WS(
',',
CONCAT_WS( old.id, '"id":"', '"' ),
CONCAT_WS( old.CODE, '"code":"', '"' ),
CONCAT_WS( old.type_dic, '"type_dic":"', '"' ),
CONCAT_WS( old.NAME, '"name":"', '"' ),
CONCAT_WS( old.pid, '"pid":"', '"' ),
CONCAT_WS( old.status_dic, '"status_dic":"', '"' ),
CONCAT_WS( old.url, '"url":"', '"' ),
CONCAT_WS( old.path, '"path":"', '"' ),
CONCAT_WS( old.icon, '"icon":"', '"' ),
CONCAT_WS( old.sort, '"sort":"', '"' ),
CONCAT_WS( old.remark, '"remark":"', '"' ),
CONCAT_WS( old.create_time, '"create_time":"', '"' ),
CONCAT_WS( old.modify_uer_id, '"modify_uer_id":"', '"' ),
CONCAT_WS( old.modify_time, '"modify_time":"', '"' )
),
"}"
)
);

MySQL用触发器实现日志记录

CREATE TRIGGER news_log AFTER INSERT ON news;

FOR EACH ROW INSERT INTO `news_logs` select *, now() from news where newsid = (select max(newsid ) from news);

DROP TRIGGER news_log ;


一共两个表,一个是原始表 news,一个是日志表news_logs(多了一列日期),可以实现新插入时自动记录日志,不用写代码了。 类似还可以实现更新时插入更新日志,详情可查看 MySQL 的文档。

mysql 用触发器记录操作补充

mysql 不能在一个触发器中进行insert,update,delete操作,需分别建三个触发器

insert触发器:
 

delimiter $$
create trigger tri_city_insert
after insert
on t_xfw_city 
for each row
begin
  insert into t_tri_city(id,name,provinceid,ctype) 
  values(new.id,new.name,new.provinceid,1);
end

update触发器:

 
delimiter $$
create trigger tri_city_update
after update
on t_xfw_city
for each row
begin
  insert into t_tri_city(id,name,provinceid,ctype) 
  values(new.id,new.name,new.provinceid,2);
end
 

delete触发器:
 

delimiter $$
create trigger tri_city_delete
after delete
on t_xfw_city
for each row
begin
  insert into t_tri_city(id,name,provinceid,ctype) 
  values(old.id,old.name,old.provinceid,3);
end
 

对一个表建三个触发器有些麻烦,不知道还有没有好点的方法!

版权声明:本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 959677720#qq.cn(#换@) 举报,一经查实,本站将立刻删除。
原文链接:https://www.cnblogs.com/go4mi/p/10192245.html

相关文章

  • linux安装mysql 8.0.19 详细步骤及问题解决方法

    linux安装mysql 8.0.19 详细步骤及问题解决方法

    最近买了个腾讯云服务器,搭建环境。 该笔记用于系统上未装过mysql的干净系统第一次安装mysql。自己指定安装目录,指定数据文件目录。 linux系统版本: CentOS 7.3 64位 安装源文件版本:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz mys......
    02-27
  • Mysql中正则表达式Regexp常见用法介绍

    Mysql中正则表达式Regexp常见用法介绍

    Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含车友俱乐部的记录 select * from club_content where content regexp 车友俱乐部 # 此时的regexp与like的以下用法是等同的 select * from club_content where co......
    02-16
  • mysql日志触发器的代码介绍

    mysql日志触发器的代码介绍

    sql语句: DROP TRIGGERIFEXISTS sys_menu_edit;CREATE TRIGGER sys_menu_edit BEFORE UPDATE ON sys_menu FOR EACH ROWBEGININSERT INTO `g4m`.`sys_log` ( `table_name`, `val_id`, `data_json` )VALUES(sys_menu,old.id,CONCAT({,CONC......
    02-02
  • 详解mysql将bin-log日志文件转为sql文件的方法

    详解mysql将bin-log日志文件转为sql文件的方法

    查看mysqlbinlog版本 mysqlbinlog -V [--version] 查看binlog日志开启状态 show variables like %log_bin%; mysql打开bin-log日志后,mysql数据库的非查询操作会将记录保存到bin-log文件中。一般bin-log日志文件不能打开查看的,需要用到......
    12-31
  • mysql累积聚合原理与用法解析

    mysql累积聚合原理与用法解析

    累积聚合为聚合从序列内第一个元素到当前元素的数据,如为每个员工返回每月开始到现在累积的订单数量和平均订单数量 行号问题有两个解决方案,分别是为使用子查询和使用连接。子查询的方法通常比较直观,可读性强。但是在要求进行聚合时......
    12-27
  • mysql日期处理函数教程

    mysql日期处理函数教程

    首先创建一张实验用的一张表 drop table if exists t_student; create table t_student( id int primary key auto_increment, name varchar(20) not null comment 姓名, birthday date comment 生日)Engine=InnoDB default charset utf8;......
    12-17
  • mysql触发器简介、创建触发器及使用限制的介绍

    mysql触发器简介、创建触发器及使用限制的介绍

    简介 SQL触发器是存储在数据库目录中的一组SQL语句。每当与表相关联的事件发生时,即会执行或触发SQL触发器,例如插入,更新或删除。SQL触发器也可以当做是一种特殊类型的存储过程。 它是特别的,因为它不像直接像存储过程那样调用。 触......
    12-16
  • mysql数据库中1045错误的解决教程

    mysql数据库中1045错误的解决教程

    本地数据库连接服务器数据库报1045,如何解决? 这个意思是说:用户root@本地主机的访问被拒绝 解决方案: 1.找到MySQL安装路径下的my.ini文件,用记事本的方式打开; 2.打开后,找到mysqld这个位置,这个文件的内容中有多个mysqld,注意......
    12-10
  • MySQL自增ID的一些小问题总结

    MySQL自增ID的一些小问题总结

    下面这几个小问题都是基于 InnoDB 存储引擎的。 1. ID最大的记录删除后,新插入的记录ID是什么 例如当前表中有ID为1,2,3三条记录,把3删除,新插入记录的ID从哪儿开始? 答案: 从4开始。 实验 创建表 tb0,ID自增: create table tb0(id......
    11-17
  • 安装mysql 8.0.17并配置远程访问的方法

    安装mysql 8.0.17并配置远程访问的方法

    一、安装前准备 查看数据库版本命令: mysql --version mysql-community-common-8.0.17-1.el7.x86_64.rpmmysql-community-libs-8.0.17-1.el7.x86_64.rpmmysql-community-client-8.0.17-1.el7.x86_64.rpmmysql-community-server-8.0.17-1.......
    10-17

最新更新