1、什么是触发器

触发器是与表有关的命名数据库对象。触发器由事件来触发某个操作。

触发器是特殊的存储过程,触发器不需要call语句来调用,也不需要手工启动,只需要确定一个预定义的事件发生的时候,就会被MySQL自动调用。

2、创建触发器

  1》创建只有一个执行语句的触发器

//trigger_time触发的时机,可以指定before或after;
//trigger_event标识触发事件,包括insert、update、delete;
//trigger_stmt是触发器执行语句。
create trigger trigger_name trigger_time trigger_event
on tb_name
for exch row trigger_stmt
mysql> create table account(num int,amount decimal(10,2));
Query OK, 0 rows affected (0.03 sec) mysql> create trigger ins_num before insert
-> on account
-> for each row set @sum=@sum+NEW.amount;
Query OK, 0 rows affected (0.02 sec) mysql> set @sum=0;
Query OK, 0 rows affected (0.00 sec) mysql> insert into account values(1,1.00),(2,2.00);
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0 mysql> select @sum;
+------+
| @sum |
+------+
| 3.00 |
+------+
1 row in set (0.00 sec) mysql>

2》创建有多个执行语句的触发器

create trigger trigger_name trigger_time trigger_event
on tb_name for exch row
begin
...
end
mysql> create table t1(a1 int);
Query OK, 0 rows affected (0.03 sec) mysql> create table t2(a2 int);
Query OK, 0 rows affected (0.01 sec) mysql> delimiter //
mysql> create trigger trigger_insert_t1 before insert
-> on t1 for each row
-> begin
-> insert into t2 values(NEW.a1);
-> end//
Query OK, 0 rows affected (0.01 sec) mysql> delimiter ;
mysql> insert into t1 values(233);
Query OK, 1 row affected (0.00 sec) mysql> select * from t1;
+------+
| a1 |
+------+
| 233 |
+------+
1 row in set (0.00 sec) mysql> select * from t2;
+------+
| a2 |
+------+
| 233 |
+------+
1 row in set (0.00 sec) mysql>

3、查看触发器,2种方式

1》show triggers

show triggers;

2》在triggers表中查看触发器信息。

select * from information_schema.triggers where condition;

4、触发器的使用

在insert、update、delete事件中对数据检查等。

5、删除触发器

drop trigger [schema_name.]trigger_name

MySQL-快速入门(10)触发器的更多相关文章

  1. MySql基础笔记(一)Mysql快速入门

    Mysql快速入门 一)基本概念 1)表 行被称为记录,是组织数据的单位.列被称为字段,每一列表示记录的一个属性. 2)主键 主键用于唯一的标识表中的每一条记录.可以定义表中的一列或者多列为主键, 但 ...

  2. MySQL快速入门(二)

    目录 MySQL快速入门(二) 约束条件 自增 自增的特性 主键 外键 级联更新/删除 表与表之间的关系 外键约束 操作表方法 查询关键字 练习数据 select··from where 筛选 gro ...

  3. MySQL 快速入门教程

    转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...

  4. MySQL 快速入门(一)

    目录 MySQL快速入门 简介 存储数据的演变过程 数据库分类 概念介绍 MySQL安装 MySQL命令初始 环境变量配置 MySQL环境变量配置 修改配置文件 设置新密码 忘记密码的情况 基本sql ...

  5. Mysql快速入门(看完这篇能够满足80%的日常开发)

    这是一篇mysql的学习笔记,整理结合了网上搜索的教程以及自己看的视频教程,看完这篇能够满足80%的日常开发了. 菜鸟教程:https://www.runoob.com/mysql/mysql-tut ...

  6. SQL快速入门 ( MySQL快速入门, MySQL参考, MySQL快速回顾 )

    SQL 先说点废话,很久没发文了,整理了下自己当时入门 SQL 的笔记,无论用于入门,回顾,参考查询,应该都是有一定价值的,可以按照目录各取所需.SQL数据库有很多,MySQL是一种,本文基本都是SQ ...

  7. 阿里云RDS for MySQL 快速入门——笔记

    1初始化配置 1.1设置白名单 创建RDS实例后,需要设置RDS实例的白名单,以允许外部设备访问该RDS实例.默认的白名单只包含默认IP地址127.0.0.1,表示任何设备均无法访问该RDS实例. 设 ...

  8. Mysql快速入门(三)

    MySQL性能优化之查看执行计划explain 介绍: (1).MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发 ...

  9. MySQL快速入门 基本技能篇

    写在之前的话: 之前一直在用MSSERVER,刚用MySQL时有很多的不适应.就此小结一下工作中遇到的问题和场景,文中出现的局限性欢迎指出 MySQL有客户端式(SQLyog),可托拉拽和写代码:或者 ...

  10. MySQL快速入门及常用命令

    数据库 笔记内容 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL. 1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,F ...

随机推荐

  1. 好好理解一下python的函数和python的缩进

    缩进相当于其他语言的括号,括号中的语句才是一起执行的 这一个函数的功能应该是计算平均分 所以d这个dict应该是作为参数传进来的,而不是写到函数内部 正确的写法 d = { 'Adam': 95, ' ...

  2. scala spark(2.10)读取kafka(2.11_1.0.0)示例

    1.pom加载jar包 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spa ...

  3. 部署zabbix 4.0 + grafana

    不完整,仅供参考 Zabbix+grafana监控部署 基本环境 系统: CentOS Linux release 7.3.1611 Zabbix—server:  Zabbix_agent:   N ...

  4. linux 内存

    [转]Linux 查看内存(free buffer cache) 转自:http://elf8848.iteye.com/blog/1995638 Linux下如何查内存信息,如内存总量.已使用量.可 ...

  5. clojure的delay future promise

    <Clojure编程>第4章笔记. 总的感觉,Clojure毕竟是基于JVM的在人间的工程化语言.不是纯的无状态纯函数的在神间的lisp. 作为后端语言,不可避免要处理计算中和代码执行时序 ...

  6. Json和XML的一些差别

    XML: 扩展标记语言,可以用来标记数据.定义数据类型, 优缺点: 1.格式统一,符合标准: 2.容易与其他系统进行远程交互,数据共享比较方便 3.XML文件庞大,文件格式复杂,传输占带宽,较复杂 J ...

  7. [BZOJ3796]Mushroom追妹纸:后缀自动机+KMP

    分析 这道题有个\(O(n)\)的后缀自动机做法,感觉很好理解就在这说一下. 先对\(s1\)和\(s2\)求最长公共子串,对于\(s2\)的每一个下标\(i\),求一个\(f[i]\)表示以\(s2 ...

  8. 《数据结构(C语言)》苏小红 课本案例

    期末了,赶紧复习一波,手打一份书上的代码以便随时查阅 第二章: //顺序表存储结构 #define MAXSIZE 100 typedef struct { Elemtype *elemt; int ...

  9. es之零停机重新索引数据

    实际生产,对于文档的操作,偶尔会遇到这种问题: 某一个字段的类型不符合后期的业务了,但是当前的索引已经创建了,我们知道es在字段的mapping建立后就不可再次修改mapping的值 比如: 1): ...

  10. 微信小程序 API 网络(ajax)

    网络 API 类似于 ajax 向服务器请求网络地址,唯一不同的是这个请求有很多的规则,且必须向服务器上请求,不能在本地请求 网络 发送请求: wx.request() 发起https网络请求 参数: ...