触发器器的概念:

触发器是一种特殊类型的存储过程,不由用户直接调用,而且可以包含复杂的 SQL语句。它们主要用于强制复杂的业务规则或要求。触发器还有助于实现强制域的完整性,以便在添加、更新或删除表中的数据时保留表之间已定义的关系。它不仅可以完成存储过程能完成的功能,也具有自己显著的特点

1)它与表紧密相连,可以看作表定义的一部分;     

2)它不能通过名称被直接调用,更不允许带参数,而是当用户对表中的数据进行增删改操作时,自动执行

3)它可以用于约束、默认值和规则的完整性检查,实施更为复杂的数据完整性约束。

创建触发器语法格式:

        CREATE TRIGGER 触发器名  触发时间  触发事件

        ON 表名 FOR EACH ROW 

触发器动作

Ø触发时间触发器触发的时刻,有两个选项:AFTERBEFORE,以表示触发器是在激活它的语句之前或之后触发。after是先完成数据的增删改,再触发动作,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作before是先完成触发,再增删改,触发的语句先于增删改的操作,我们可以提前判断即将发生的操作。
Ø触发事件:指明了激活触发程序的语句的类型。触发事件可以是下述值之一:

       INSERT:将新行插入表时激活触发器。

       UPDATE:更改某一行时激活触发器。

       DELETE:从表中删除某一行时激活触发器

Ø触发器动作包含触发器激活时将要执行的语句。如果要执行多个语句,可使用BEGIN ... END复合语句结构。这样,就能使用存储过程中允许的相同语句

课堂练习:当Class表中的ClassNO列修改时,Student表中的ClassNo也随之更新

Class表:

Student表:

创建触发器:

修改class中的classno为 100003:

触发结果:

此时student表中的100001已经修改为100003

MySQL(触发器)及课堂练习相关推荐

  1. 利用MySQL触发器实现check和assertion

    MySQL虽然输入check语句不会报错,但是实际上并没有check的功能.但是MySQL 依然可以利用触发器来实现相应功能. 本文将根据两个例子简要阐述MySQL实现check和assertion的 ...

  2. MySQL 触发器应用案例

    网友问题:对于MySQL主从复制结构中,如何让Slave过滤delete操作. 问题分析:该问题对应的是保全所有的记录,包括delete的记录. 对于MySQL本身的过滤规则粒度是精确到表的粒度. 主 ...

  3. mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...

    1   引言Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程 ...

  4. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除

    [数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...

  5. mysql 触发器学习

    mysql 触发器学习 1. 一个简单的例子 1.1. 创建表: create table t(s1 integer); 1.2. 触发器: delimiter | create trigger t_ ...

  6. mysql 触发器 分行_mysql 触发器

    mysql 触发器中有两个insert 语句 第二个inert 要用第一个insert 的结果怎么实现 DELIMITER $$ USE `nightclub`$$ DROP TRIGGER /*!5 ...

  7. mysql触发器 存储过程_mysql触发器和存储过程

    Mysql触发器和存储过程 1 / 9Mysql触发器 1.语法:命名规则 CREATE TRIGGER { BEFORE | AFTER } { INSERT | UPDATE | DELETE } ...

  8. mysql之触发器详解_学习笔记之MySQL触发器详解

    触发器是由事件来触发某个操作,这些事件包括INSERT语句,UPDATE语句和DELETE语句 创建触发器 创建只有一个执行语句的触发器 CREATE TRIGGER 触发器名 BEFORE|AFTE ...

  9. MySql 触发器同步备份数据表记录

    添加记录到新记录表 DELIMITER $$ USE `DB_Test`$$ CREATE/*!50017 DEFINER = 'root'@'%' */TRIGGER `InsertOPM_Alar ...

  10. mysql触发器 while循环_mysql触发器跳出当前循环方法

    mysql触发器跳出当前循环方法 set @num=@UnitLength/3; label: while i set @length=(select SUBSTRING(@unit_sid_fk,1 ...

最新文章

  1. Android O 7.0 启动优化的一些思路
  2. 【Linux】GCC程序开发工具(上)
  3. Java入门算法(滑动窗口篇)丨蓄力计划
  4. php-常量、运算符
  5. 将分享按钮加入到页面中
  6. mysql主从1594错误_3分钟解决MySQL主从1594错误
  7. 选择 Java 编写 iOS 与 安卓 App的八大理由
  8. SpringMVC jsp界面值渲染不出来
  9. Linux下 vim代码编译器的使用
  10. 如何判断一个女孩是不是真的爱你?
  11. MySQL数据库开发的三十六条军规
  12. 互联网对实体经济的三轮冲击
  13. PHP添加网站版权信息,如何将版权和作者信息添加到用PHP创建的图像?
  14. sql 只要一个字段相同则只显示一条数据_sql 有一个字段内容重复的 只显示一条的方法...
  15. IPOP下的tcl脚本
  16. flex C#在线拍照
  17. 家用电器行业十二月行业动态报告:11月冰洗表现亮眼,空调价格回升持续(20201231).PDF
  18. 【Xubuntu】多种方法设置xubuntu-18.04开机启动
  19. SDOI2019 R2退役记
  20. 仿西祠和搜狐论坛界面的bbs下载

热门文章

  1. 深度学习之损失函数、成本函数、目标函数的基本概念
  2. 线性回归中成本函数的由来
  3. python循环比大小
  4. android 语音转换文字(科大讯飞SDK简易封装)
  5. scrcpy投屏工具的在harmonyOS开发上的使用
  6. vivoy53s和vivos10哪个好
  7. 2020中兴捧月算法精英挑战赛-迪杰斯特拉派初赛(未来城市物流系统)总结
  8. oracle中提示12514,【ORACLE】提示ORA-12514错误处理
  9. 【ODX Studio编辑PDX】-0.3-如何删除/修改Variant变体中继承的(Inherited)元素
  10. jstree禁用父节点点击_Jstree选中父节点时禁用子节点也被选中