mysql-----触发器
一、关于触发器
mysql从5.0.2版本开始支持触发器的功能。触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。
二、触发器相关操作
2.1 创建触发器
创建触发器的语法:
CREATE TRIGGER trigger_name trigger_time trigger_event
ON tbl_name FOR EACH ROW
trigger_stmt
通用语句:
CREATE TRIGGER 触发器名
after/before insert/update/delete on 表名
FOR EACH ROW #这一句在mysql中是固定的
BEGIN
sql语句;
END;
注意:触发器只能创建在永久表(permanent table)上,不能对临时表(temporary table)上创建触发器
其中trigger_time是触发器的触发时间,可以使BEFORE或者AFTER,BEFORE的含义指在检查约束前触发,而AFTER是在检查约束后触发。
而trigger_event 就是触发器的触发事件,可以是INSERT,UPDATE或者DELETE。
对同一个表相同触发事件的相同触发事件,只能定义一个触发器。例如,对某个表的不同字段的AFTER更新触发器,在使用oracle数据库的时候,可以定义成两个不同的UPDATE触发器,更新不同的字段是触发单独的触发器,但是在mysql数据库中,只能定义一个触发器,在触发器中通过判断更新的字段进行对应的处理。
使用别名OLD和NEW来引发触发器发生变化的记录内容,这与其他的数据库是相似的。现在触发器还支持行级触发,不支持语句级触发。
详细介绍可以参考博客: mysql之触发器trigger
mysql-----触发器相关推荐
- 利用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利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除
[数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...
- mysql 触发器学习
mysql 触发器学习 1. 一个简单的例子 1.1. 创建表: create table t(s1 integer); 1.2. 触发器: delimiter | create trigger t_ ...
- mysql 触发器 分行_mysql 触发器
mysql 触发器中有两个insert 语句 第二个inert 要用第一个insert 的结果怎么实现 DELIMITER $$ USE `nightclub`$$ DROP TRIGGER /*!5 ...
- mysql触发器 存储过程_mysql触发器和存储过程
Mysql触发器和存储过程 1 / 9Mysql触发器 1.语法:命名规则 CREATE TRIGGER { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ...
- mysql之触发器详解_学习笔记之MySQL触发器详解
触发器是由事件来触发某个操作,这些事件包括INSERT语句,UPDATE语句和DELETE语句 创建触发器 创建只有一个执行语句的触发器 CREATE TRIGGER 触发器名 BEFORE|AFTE ...
- MySql 触发器同步备份数据表记录
添加记录到新记录表 DELIMITER $$ USE `DB_Test`$$ CREATE/*!50017 DEFINER = 'root'@'%' */TRIGGER `InsertOPM_Alar ...
- mysql触发器 while循环_mysql触发器跳出当前循环方法
mysql触发器跳出当前循环方法 set @num=@UnitLength/3; label: while i set @length=(select SUBSTRING(@unit_sid_fk,1 ...
最新文章
- Windows环境下启动Mysql服务提示“1067 进程意外终止”的解决方案
- 嵌入式系统学习笔记之五-- uboot常用命令 概述
- java been 字段命名的坑
- 树莓派-语音聊天机器人+语音控制引脚电平高低
- 如何制作流畅有力的游戏动画+Skullgirls案例分析
- 虽然我们可能不想对元素应用3D变换,可我们一样可以开启3D引擎
- hdu 1025 Constructing Roads In JGShining's Kingdom(DP + 二分)
- Oracle 数据库升级
- nxlog收集windows事件方案
- python随机选人程序_python: 随机选择
- 电脑主机组装总结——自己动手,丰衣足食
- python随机生成电话号码
- 微信小程序开发之动图小游戏是实现(代码篇)
- Excel复制粘贴出现复制区域与粘贴区域形状不同问题的解决办法
- Completed 403 FORBIDDEN 后端解决跨域问题
- 10php1c,很急的一個問題,請幫幫忙
- (总结)什么是HTML语义化
- SSL数字证书是什么?
- Atcoder Codefestival Exhibition/Team Relay/Tournament Round 简要题解
- Angular------win10搭建Angular环境并运行hello-world