触发器

触发器是一段与某个表相关的sql语句,会在某个时间点,满足某个条件后自动触发执行。

支持的时间点:时间发生前before和发生后after

支持的事件:

  • update 可用OLD访问旧数据,NEW访问新数据
  • delete 可用OLD访问新数据
  • insert 可用NEW访问新数据
  • 可以将NEW和OLD看做一个对象,其中封装了这列数据的所有字段

创建触发器

delimiter //  重定义行结束符
create trigger t_name t_time t_event on table_name for each row
begin
sql语句
end//
delimiter ;
# delimiter 用于修改默认的行结束符,由于在触发器中有多条sql语句,他们需要使用分号来结束,但是触发器是一个整体,所以需要先更换默认的行结束符
# t_name 触发器名
# t_time 时间点 before|after
# t_event 事件 delete|update|insert
# table_name 表名

查看触发器

show triggers;  # 查看所有触发器
show create trigger 触发器名;  # 查看创建指定的触发器语句

删除触发器

drop trigger 触发器名;  

举例

#准备数据
CREATE TABLE cmd (id INT PRIMARY KEY auto_increment,USER CHAR (32),priv CHAR (10),cmd CHAR (64),sub_time datetime, #提交时间success enum ('yes', 'no') #0代表执行失败
);
#错误日志表
CREATE TABLE errlog (id INT PRIMARY KEY auto_increment,err_cmd CHAR (64),err_time datetime
);# 创建触发器
delimiter //
create trigger insert_t after insert on cmd for each row
begin
if new.success = 'no' then
insert into errlog(err_cmd,err_time) values(new.cmd,new.sub_time);
end if;
end//
delimiter ;show triggers;  # 查看所有的触发器
show create trigger insert_t;  # 查看创建触发器insert_t的语句drop trigger insert_t;  # 删除触发器insert_t

转载于:https://www.cnblogs.com/863652104kai/p/11197564.html

MySql-触发器操作相关推荐

  1. MYSQL触发器记录用户操作的命令

    假如有一张重要的表btb,需要几个管理员来管理 管理员:ma1@localhost.ma2@localhost.ma3@localhost 要求给表btb创建触发器: trigger触发器需求: 1. ...

  2. [数据库] Navicat for MySQL触发器更新和插入操作

    一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动 ...

  3. MySQL触发器更新和插入操作

    MySQL触发器更新和插入操作 一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执 ...

  4. 利用MySQL触发器实现check和assertion

    MySQL虽然输入check语句不会报错,但是实际上并没有check的功能.但是MySQL 依然可以利用触发器来实现相应功能. 本文将根据两个例子简要阐述MySQL实现check和assertion的 ...

  5. MySQL 触发器应用案例

    网友问题:对于MySQL主从复制结构中,如何让Slave过滤delete操作. 问题分析:该问题对应的是保全所有的记录,包括delete的记录. 对于MySQL本身的过滤规则粒度是精确到表的粒度. 主 ...

  6. mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...

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

  7. Mysql的操作应用

    1.创建数据库格式:create database if not exists 数据库名 default charset utf8;注意:1.数据库是唯一的2.if not exists先判断是否存在 ...

  8. mysql 触发器学习

    mysql 触发器学习 1. 一个简单的例子 1.1. 创建表: create table t(s1 integer); 1.2. 触发器: delimiter | create trigger t_ ...

  9. mysql之触发器详解_学习笔记之MySQL触发器详解

    触发器是由事件来触发某个操作,这些事件包括INSERT语句,UPDATE语句和DELETE语句 创建触发器 创建只有一个执行语句的触发器 CREATE TRIGGER 触发器名 BEFORE|AFTE ...

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

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

最新文章

  1. 怎么主动发起话题_谈恋爱怎样找话题聊天?
  2. testng xml 示例
  3. Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
  4. y2第一章 初始mybatis的上机3_MyBatis3.2.x从入门到精通之第一章
  5. python3默认的代码编码是什么-Python3 到底什么是字符编码
  6. php laravel 优点,Laravel 特点有哪些?
  7. libcstl中的list没法插入自定义数据
  8. *BZOJ4127: Abs
  9. hadop 查看DataNode的资源使用情况信息(web接口)
  10. Ubuntu-安装MySQL5.7并配置用户名密码
  11. Android 7.1 App Shortcuts使用
  12. Unity性能优化专题---腾讯牛人分享经验
  13. 计算机 管理 用户,一种计算机系统及管理计算机用户权限的方法_2
  14. 传统图像降噪算法之BM3D原理详解
  15. bzoj2037 创世纪
  16. 搜索引擎代码资源[转载]
  17. 浙江卫视的万峰纯粹一烂人
  18. 百度BMap开发(基础入门知识)
  19. C/C++函数名称修饰规则及extern C的作用(函数名压扎)
  20. ADI官方解释在SPI通信期间,数据的发送(串行移出到MOSI/SDO总线上)和接收(采样或读入总线(MISO/SDI)上的数据)

热门文章

  1. Vue 组件 data为什么是函数
  2. Spring之@Configuration配置解析
  3. xcode6创建工程时 默认去掉了PrefixHeader.pch
  4. Python网页抓取
  5. eclipse plugins
  6. 如何优雅的起个变量名?
  7. JavaScript学习(三十八)—面向过程与面向对象
  8. windows 设置 rocketmq环境变量_RocketMQ 开篇
  9. 什么是罗技LogitechFlow技术
  10. 俗语:“生不睡柳,死不睡杨”,有什么道理?