首先建立两张测试用表

mysql> desc pay;
+-------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------------+------+-----+---------+----------------+
| id | int() | NO | PRI | NULL | auto_increment |
| money | decimal(,) | NO | | NULL | |
| op | char() | YES | | NULL | |
+-------+---------------+------+-----+---------+----------------+
rows in set (0.00 sec) mysql> desc log;
+-------------+-----------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-----------+------+-----+-------------------+-----------------------------+
| id | int() | NO | PRI | NULL | auto_increment |
| op | char() | YES | | NULL | |
| oid | int() | NO | | NULL | |
| last_update | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------------+-----------+------+-----+-------------------+-----------------------------+
rows in set (0.00 sec)

创建一个触发器

mysql> delimiter $$
mysql> create trigger pay_log after insert on pay for each row begin insert into log set oid=new.id, op=new.op; end;$$
mysql> delimiter ;

参看触发器是否创建成功

mysql> show triggers\G;
*************************** . row ***************************
Trigger: pay_log
Event: INSERT
Table: pay
Statement: begin insert into log set oid=new.id, op=new.op; end
Timing: AFTER
Created: NULL
sql_mode:
Definer: root@localhost
character_set_client: latin1
collation_connection: latin1_swedish_ci
Database Collation: utf8_general_ci
row in set (0.00 sec) ERROR:
No query specified

测试

mysql> insert into pay set money=,op='jimmy';
mysql> select * from pay;
+----+--------+-------+
| id | money | op |
+----+--------+-------+
| | 123.00 | jimmy |
| | 123.00 | jimmy |
+----+--------+-------+
rows in set (0.00 sec) mysql> select * from log;
+----+-------+-----+---------------------+
| id | op | oid | last_update |
+----+-------+-----+---------------------+
| | jimmy | | -- :: |
| | jimmy | | -- :: |
+----+-------+-----+---------------------+
rows in set (0.00 sec)

同理还可以再创建一个update和delete的触发器

题外话

创建触发器的时候发现没有权限,启动参数加上--skip-grant-table解决

用mysql触发器实现log记录的更多相关文章

  1. Mysql 触发器 A表记录到B表

    1:查询出需要的列名 备用 #列名 select COLUMN_NAME from information_schema.columns where TABLE_SCHEMA='yunpiaobox_ ...

  2. MySql 触发器同步备份数据表记录

    添加记录到新记录表 DELIMITER $$ USE `DB_Test`$$ CREATE /*!50017 DEFINER = 'root'@'%' */ TRIGGER `InsertOPM_Al ...

  3. redis作为mysql的缓存服务器(读写分离,通过mysql触发器实现数据同步)

    一.redis简介Redis是一个key-value存储系统.和Memcached类似,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录 ...

  4. mysql触发器trigger 实例详解

    mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html)   MySQL好像从5.0.2版本就开始支持触发器的功能 ...

  5. MySQL触发器如何正确使用

    MySQL触发器如何正确使用 2010-05-18 15:58 佚名 博客园 字号:T | T 我们今天主要向大家介绍的是MySQL触发器进行正确使用,其中包括对MySQL触发器发器的语句创建,触发时 ...

  6. 【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)

    1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...

  7. Mysql slow query log

    一.概念部分:  顾名思义,慢查询日志中记录的是执行时间较长的query,也就是我们常说的slow query,通过设--log-slow-queries[=file_name]来打开该功能并设置记录 ...

  8. navicat MySQL 只有1000条记录

    /*************************************************************************** * navicat MySQL 只有1000条 ...

  9. mysql触发器的作用及语法

    触发器是一种特殊的存储过程,它在插入,删除或改动特定表中的数据时触发运行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力. 数据库触发器有下面的作用: 1.安全性.能够基于数据库的值使用户具有 ...

随机推荐

  1. Windows下 maven3.0.4的安装步骤+maven配置本地仓库

    简单讲下maven的安装步骤: 1.在安装maven之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量. 2.下载maven3,最新版本是Maven3.0.4 ,下载地址:http://m ...

  2. python中列表、元组、字典内部功能介绍

    一.列表(list) 常用功能的介绍:

  3. Linux换源+编译内核总结

    换源: 我用的是CentOS,所以下面以其为例,其它OS做法类似,可作参考: 在主机能联网的情况下 进入存放源配置的文件夹 cd /etc/yum.repos.d 备份默认源 mv ./CentOS- ...

  4. x01.os.8: 加载内核

    在 x01.os.7 中,借助 freedos,学习了保护模式.但操作系统必须完成引导:boot, 加载内核:loader,kernel,进而管理process,memory,file等. 引导比较简 ...

  5. /etc/fstab 参数详解及如何设置开机自动挂载

    某些时候当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,Linux是无法使用新建的分区的. /etc/fstab 文件负责配置Linux开机时自动挂载的分区. Window ...

  6. flock — 轻便的咨询文件锁定

    bool flock  ( resource $handle  , int $operation  [, int &$wouldblock  ] ) handle  文件系统指针,是典型地由 ...

  7. 【JAVA小结】类的属性组的使用

    public class UsingAttribute { static String strA = "string-a"; static String strB; static ...

  8. 10、WGET

    这个我看过比较好的  http://www.cnblogs.com/peida/archive/2013/03/18/2965369.html WGET 支持HTTP和FTP协议,断点续传功能,自动递 ...

  9. NopCommerce 发布时 Could not load file or assembly 'file:///...\Autofac.3.5.2\lib\net40\Autofac.dll' or one of its dependencies

    本文转自:http://www.nopcommerce.com/boards/t/33637/4-errors.aspx 问题: The 3.5 solution compiles fine, and ...

  10. 微信公众平台C# SDK:Senparc.Weixin.MP.dll

    https://github.com/Senparc/WeiXinMPSDK [转] http://www.cnblogs.com/szw/archive/2013/01/13/senparc-wei ...