MySql-触发器操作
触发器
触发器是一段与某个表相关的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-触发器操作相关推荐
- MYSQL触发器记录用户操作的命令
假如有一张重要的表btb,需要几个管理员来管理 管理员:ma1@localhost.ma2@localhost.ma3@localhost 要求给表btb创建触发器: trigger触发器需求: 1. ...
- [数据库] Navicat for MySQL触发器更新和插入操作
一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动 ...
- MySQL触发器更新和插入操作
MySQL触发器更新和插入操作 一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执 ...
- 利用MySQL触发器实现check和assertion
MySQL虽然输入check语句不会报错,但是实际上并没有check的功能.但是MySQL 依然可以利用触发器来实现相应功能. 本文将根据两个例子简要阐述MySQL实现check和assertion的 ...
- MySQL 触发器应用案例
网友问题:对于MySQL主从复制结构中,如何让Slave过滤delete操作. 问题分析:该问题对应的是保全所有的记录,包括delete的记录. 对于MySQL本身的过滤规则粒度是精确到表的粒度. 主 ...
- mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...
1 引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...
- Mysql的操作应用
1.创建数据库格式:create database if not exists 数据库名 default charset utf8;注意:1.数据库是唯一的2.if not exists先判断是否存在 ...
- mysql 触发器学习
mysql 触发器学习 1. 一个简单的例子 1.1. 创建表: create table t(s1 integer); 1.2. 触发器: delimiter | create trigger t_ ...
- mysql之触发器详解_学习笔记之MySQL触发器详解
触发器是由事件来触发某个操作,这些事件包括INSERT语句,UPDATE语句和DELETE语句 创建触发器 创建只有一个执行语句的触发器 CREATE TRIGGER 触发器名 BEFORE|AFTE ...
- MySql 触发器同步备份数据表记录
添加记录到新记录表 DELIMITER $$ USE `DB_Test`$$ CREATE/*!50017 DEFINER = 'root'@'%' */TRIGGER `InsertOPM_Alar ...
最新文章
- 怎么主动发起话题_谈恋爱怎样找话题聊天?
- testng xml 示例
- Ubuntu14.04下Neo4j图数据库官网安装部署步骤(图文详解)(博主推荐)
- y2第一章 初始mybatis的上机3_MyBatis3.2.x从入门到精通之第一章
- python3默认的代码编码是什么-Python3 到底什么是字符编码
- php laravel 优点,Laravel 特点有哪些?
- libcstl中的list没法插入自定义数据
- *BZOJ4127: Abs
- hadop 查看DataNode的资源使用情况信息(web接口)
- Ubuntu-安装MySQL5.7并配置用户名密码
- Android 7.1 App Shortcuts使用
- Unity性能优化专题---腾讯牛人分享经验
- 计算机 管理 用户,一种计算机系统及管理计算机用户权限的方法_2
- 传统图像降噪算法之BM3D原理详解
- bzoj2037 创世纪
- 搜索引擎代码资源[转载]
- 浙江卫视的万峰纯粹一烂人
- 百度BMap开发(基础入门知识)
- C/C++函数名称修饰规则及extern C的作用(函数名压扎)
- ADI官方解释在SPI通信期间,数据的发送(串行移出到MOSI/SDO总线上)和接收(采样或读入总线(MISO/SDI)上的数据)