1. 为什么要使用触发器?

触发器与函数有些类似,都需要声明,执行。但是触发器的执行不是由程序调用,也不是由手工启动,而是由事件来触发,激活,从而实现执行。

当触发DELETE,INSERT,UPDATE语句的时候会触发激活触发器,其他的SQL语句则不会激活触发器。

当处理一些业务逻辑,表的数据发生更改时,能够自动进行一些处理,这时就可以使用触发器处理数据库对象。

触发器的操作包括创建触发器,查看触发器以及删除触发器。

2. 创建触发器

2.1 创建有一条执行语句的触发器

CREATE TRIGGER trigger_name BEFORE | AFTER trigger_event ON table_name FOR EACH    ROW trigger_stmt;

示例如下:

CREATE TRIGGER tri_diary BEFORE INSERT ON t_dept FOR EACH ROW INSERT INTO t_diary VALUES(NULL,'t_dept',NOW());

当向部门表t_dept插入任意一条记录时,就会在插入操作之前向表t_diary中插入当前时间记录。

2.2 创建包含多条执行语句的触发器

CREATE TRIGGER trigger_name BEFORE | AFTER trigger_event ON table_name FOR EACH  ROW BEGIN trigger_stmt END;

示例如下:

DELIMITER $$
CREATE TRIGGER tri_diary BEFORE INSERT ON t_dept FOR EACH ROW BEGIN
INSERT INTO t_diary VALUES(NULL,'t_dept',NOW());
INSERT INTO t_diary VALUES(NULL,'t_dept',NOW());
END
$$
DELIMITER ;

上面示例中,首先通过"DELIMITER $$"语句设置结束符为"$$",然后再关键字BEGIN和END之间编写执行语句列表,最后通过"DELIMITER ;"语句将结束符号还原成默认结束符";"。需要注意的是DELIMITER和&&以及DELIMITER和;之间要留有空格。

3. 查看触发器

3.1 通过SHOW TRIGGERS语句查看触发器

SHOW TRIGGERS会显示所有触发器的一个列表。

3.2 通过查看系统表triggers实现查看触发器。

4. 删除触发器

DROP TRIGGER trigger_name;

mysql之对触发器的操作的更多相关文章

  1. mysql 查看删除触发器等操作

    mysql 查看删除触发器等操作 平时很少操作触发器,源于昨晚的一次故障,使用pt-online-change-schema修改大表过程中出现异常,再次执行时,提示已经存在触发器,导致失败. 这里推荐 ...

  2. Mysql之触发器的操作:

    触发器的操作: 1.触发器的创建: (1).创建包含一条语句的触发器 create trigger trigger_name before|after trigger_event on table_n ...

  3. mysql查看所有触发器以及存储过程等操作集合

    今天在做每个月定时扣费的功能 用到了Mysql的Event Scheduler 昨完之后发现一个问题 Event Scheduler 默认是不开启的 要在mysql内执行SET GLOBAL even ...

  4. MySQL的学习--触发器

    MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 创建触发器 在MySQL中,创建触发器语法如下 ...

  5. mysql存储过程和触发器的应用

    ***********[mysql 存储过程和触发器 -- 别安驹]********************* 1.什么情况下使用存储过程? 完成一些比较麻烦的逻辑,比如多表在mysql端的cpu很空 ...

  6. Mysql高级之触发器

    原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完 ...

  7. MySQL学习笔记_10_MySQL高级操作(下)

    MySQL高级操作(下) 五.MySQL预处理语句 1.设置预处理stmt,传递一个数据作为where的判断条件 prepare stmt from "select * from table ...

  8. 【转】MySQL的学习--触发器

    MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行. 创建触发器 在MySQL中,创建触发器语法如下 ...

  9. mysql数据库从删库到跑路之mysql:视图、触发器、事务、存储过程、函数

    mysql:视图.触发器.事务.存储过程.函数 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果 ...

随机推荐

  1. 关闭火车头dedecms发布模块自动关键词,解决火车头发布dedecms文章关键词过多问题

    用火车头发布dedecms文章时,经常会自动添加关键词,这些关键词默认有10个,数量过多,而且是随机提取的,乱七八糟的词都进去了,如下图所示: 这些关键词可能会成为se判断你作弊的依据,现在se也弱化 ...

  2. git初学者这样就行了。

    Create a new repository on the command line touch README.md git init git add README.md git commit -m ...

  3. [POJ1338]Ugly Numbers

    [POJ1338]Ugly Numbers 试题描述 Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequ ...

  4. 手把手教你用Python爬虫煎蛋妹纸海量图片

    我们的目标是用爬虫来干一件略污事情 最近听说煎蛋上有好多可爱的妹子,而且爬虫从妹子图抓起练手最好,毕竟动力大嘛.而且现在网络上的妹子很黄很暴力,一下接受太多容易营养不量,但是本着有人身体就比较好的套路 ...

  5. PHP快速抓取快递信息

    <?php header("Content-type:text/html;charset=utf-8"); /** * Express.class.php 快递查询类 * @ ...

  6. Java RMI 框架

    RMI(即Remote Method Invoke 远程方法调用).在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定 ...

  7. vs2010 调试快捷键

    vs2010 调试快捷键   命令名 快捷键 说明 调试.应用代码更改 Alt + F10 启动生成操作,利用它可以通过“编辑并继续”功能应用对正在调试的代码所作的更改. 调试.自动窗口 Ctrl + ...

  8. C# 代理/委托 Delegate

    本文转载自努力,努力,努力 1. 委托的定义:委托是函数的封装,它代表一"类"函数.他们都符合一定的签名:拥有相同的参数列表,返回值类型.同时,委托也可以看成是对函数的抽象,是函数 ...

  9. html css js

    html 回顾 字体:font 属性: color: 颜色 size: 字号 表格:table 标签: tr:表格中的行 td: 单元行中的单元格 th:通常使用在table中的第一行, 成为表头, ...

  10. 1.7 逆序数与归并排序[inversion pairs by merge sort]

    [本文链接] http://www.cnblogs.com/hellogiser/p/inversion-pairs-by-merge-sort.html [题目] 编程之美1.7光影切割问题可以进一 ...