MySQL 触发器简单实例 - 转载
触发器:可以更新,删除,插入触发器,不同种类的触发器可以存在于同一个表,但同种类的不能有多个。
一个更新、一个删除是可以共存的。
~~语法~~
CREATE TRIGGER <触发器名称> --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.
{ BEFORE | AFTER } --触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE } --同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。
ON <表名称> --触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW --触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句> --触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。
DELIMITER $$ CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER name_trigger BEFORE/AFTER INSERT/UPDATE/DELETE
ON TableName
FOR EACH ROW BEGIN .....................此处编辑所要触发的sql存储过程语句..................................... END$$ DELIMITER ;
标准的触发器书写
--你必须拥有相当大的权限才能创建触发器(CREATE TRIGGER),如果你已经是Root用户,那么就足够了。这跟SQL的标准有所不同。
~~实例~~
example1 - INSERT:
创建表tab1
DROP TABLE IF EXISTS tab1;
CREATE TABLE tab1( tab1_id varchar(11));DROP TABLE IF EXISTS tab2;
CREATE TABLE tab2( tab2_id varchar(11));创建触发器:t_afterInsert_on_tab1
作用:增加tab1表记录后自动将记录增加到tab2表中(注意下面sql事例中的红色部分,delimiter与$$之间必须仅且仅有一个空格)
DROP TRIGGER IF EXISTS t_afterInsert_on_tab1;
DELIMITER $$
CREATE TRIGGER t_afterInsert_on_tab1 AFTER INSERT ON tab1FOR EACH ROWBEGIN INSERT INTO tab2(tab2_id) VALUES(new.tab1_id);END$$
DELIMITER ;
INSERT INTO tab1(tab1_id) values('0001');SELECT * FROM tab1,tab2;
example2 - DELETE:
创建触发器:t_afterDelete_on_tab1
作用:删除tab1表记录后自动将tab2表中对应的记录删去(注意下面sql事例中的红色部分,delimiter与$$之间必须仅且仅有一个空格)
DROP TRIGGER IF EXISTS t_afterDelete_on_tab1;
DELIMITER $$
CREATE TRIGGER t_afterDelete_on_tab1AFTER DELETE ON tab1FOR EACH ROWBEGIN DELETE FROM tab2 WHERE tab2_id=old.tab1_id;END$$
DELIMITER ;
DELETE FROM tab1 WHERE tab1_id='0001';SELECT * FROM tab1,tab2;
example3 - UPDATE:
创建触发器:t_afterUpdate_on_tab1
作用:更新tab1表记录后自动将tab2表中对应的记录更新(注意下面sql事例中的红色部分,delimiter与$$之间必须仅且仅有一个空格)
DROP TRIGGER IF EXISTS t_afterUpdate_on_tab1;
DELIMITER $$
CREATE TRIGGER t_afterUpdate_on_tab1AFTER UPDATE ON tab1FOR EACH ROWBEGIN UPDATE tab2 SET tab2_id = new.tab1_id;END;$$DELIMITER ;
UPDATE tab1 SET tab1_id = '0002';SELECT * FROM tab1,tab2;MySQL 触发器简单实例 - 转载的更多相关文章
- MySQL 触发器简单实例
~~语法~~ CREATE TRIGGER <触发器名称> --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.{ BEFORE | ...
- mysql触发器trigger 实例详解
mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html) MySQL好像从5.0.2版本就开始支持触发器的功能 ...
- Mysql笔记——触发器简单实例
首先贴上触发器语法吧: CREATE TRIGGER <触发器名称> –触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象. { BEFOR ...
- MySQL触发器Trigger实例篇
定义: 何为MySQL触发器? 在MySQL Server里面也就是对某一个表的一定的操作,触发某种条件(Insert,Update,Delete 等),从而自动执行的一段程序.从这种意义上讲触发器是 ...
- mysql数据库 触发器简单实例
触发器(trigger):监视某种情况,并触发某种操作. 触发器创建语法四要素:1.监视地点(table) 2.监视事件(insert/update/delete) 3.触发时间(after/befo ...
- Java WebService 简单实例[转载]
[注意,本文转载自 http://hyan.iteye.com/ ] 一.准备工作(以下为本实例使用工具) 1.MyEclipse10.7.1 2.JDK 1.6.0_22 二.创建服务端 1 ...
- mysql 存储过程简单实例
一.什么是存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程 ...
- MySql存储过程简单实例
转自:http://www.cnblogs.com/zhuawang/p/4185302.html ********************* 创建表 ************************ ...
- mysql触发器使用实例
DELIMITER $$ USE `db`$$ DROP TRIGGER `member_walletinit_trigger`$$ CREATE TRIGGER `member_walletinit ...
随机推荐
- 【BZOJ4627】[BeiJing2016]回转寿司 SBT
[BZOJ4627][BeiJing2016]回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿司带给小Z的味觉感 ...
- [Algorithms] Graph Traversal (BFS and DFS)
Graph is an important data structure and has many important applications. Moreover, grach traversal ...
- Servlet监听器与Timer定时器配合实现JAVA WEB应用简单自动作业
在web应用中,有时候客户需要一些定时程序,不需要客户自己去操作,而是由应用程序自行触发执行某些操作.这个时候监听与定时器的配合使用就基本可以实现这个需求了. 1.创建一个监听的SERVELET,这个 ...
- slenium截屏
创建全屏截屏: public static byte[] takeScreenshot(WebDriver driver) throws IOException { WebDriver augment ...
- 记录--关于Jquery uploadify 不能动态传值的问题(java)
动态传值纠结多时后无效, 后得下面一番代码,依旧无效~~ 纳了几个闷,心灰意冷下 清理了 tomcat 一次 再出运行 可以了 真心纠结很久很久 无奈之下还是得 清理清理tomcat: ...
- 巨蟒python全栈开发-第16天 核能来袭-初识面向对象
一.今日内容总览(上帝视角,大象自己进冰箱,控制时机) #转换思想(从面向过程到面向对象) 1.初识面向对象 面向过程: 一切以事物的发展流程为中心. 面向对象: 一切以对象为中心,一切皆为对象,具体 ...
- 12.php中无比坑爹的构造函数。
当你在php类中,写一个构造方法时,记得,一定要用__这是两个下划线,而不是一个.......... <?php class Car { // function _construct() { / ...
- CentOS安装Apache-2.4.25+安全配置
注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了各基础组件,并且配置了www用户和用户组,具体见<CentOS ...
- MyBatis 入门(一)
1. MyBatis 概述 MyBatis 是一个半自动化的持久层框架; 核心SQL,开发人员可以进行优化; SQL和Java编码分开,功能边界清晰,一个专注业务,一个专注数据; JDBC: SQL ...
- 洛谷 P2467 [SDOI2010]地精部落
洛谷 我讲的应该没有这个[https://www.luogu.org/blog/user55639/solution-p2467]清楚. 贴个代码算了: #include <bits/stdc+ ...