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. php 的windows集成开发环境

    1.安装视频  https://www.bilibili.com/video/av10274152/?p=5 2.所需的安装包: https://pan.baidu.com/s/1GLnuzkKFIT ...

  2. 【leetcode】1222. Queens That Can Attack the King

    题目如下: On an 8x8 chessboard, there can be multiple Black Queens and one White King. Given an array of ...

  3. z-tree官方提供的下拉菜单案例

    1.z-tree官方提供的下拉菜单案例 <!DOCTYPE html> <HTML> <HEAD> <TITLE> ZTREE DEMO - selec ...

  4. [NOIP2012] 同余方程(第三次考试大整理)

    1265. [NOIP2012] 同余方程 输入文件:mod.in   输出文件:mod.out   简单对比 时间限制:1 s   内存限制:128 MB [题目描述] 求关于 x 的同余方程 ax ...

  5. Android网络技术之WebView常用方法

    public class WebViewTest extends Activity {       private WebView wv;     private EditText et;       ...

  6. sublime text3安装格式化代码插件

    1.代码提示插件:sublimeCodeIntel a)在Sublime Text 3中,按下Ctrl+Shift+P调出命令面板;b)输入install 调出 Install Package 选项并 ...

  7. tihuantupian

  8. 【Spark机器学习速成宝典】基础篇02RDD常见的操作(Python版)

    目录 引例入门:textFile.collect.filter.first.persist.count 创建RDD的方式:parallelize.textFile 转化操作:map.filter.fl ...

  9. SQL语句多个字段排序

    写在前面的话: 本次迭代,分配的任务有点多啊,好在本妈妈朝10晚6的加班加点.其中一项就是列表展示啊, 展示就展示呗,还要排序.排序也可以,测试时排序字段值为啥都一样啊.结果点一下一个顺序. 就想在第 ...

  10. ORACLE sqlprompt设置

    SYS@orcl>defineDEFINE _DATE           = "17-JUN-19" (CHAR)DEFINE _CONNECT_IDENTIFIER = ...