• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql触发器(Trigger)简明总结和使用实例

mysql触发器(Trigger)简明总结和使用实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql trigger,mysql create trigger,mysql trigger if,trigger触发器,trigger等相关知识,希望本文的分享对您有所帮助

一,什么触发器

1,个人理解
触发器,从字面来理解,一触即发的一个器,简称触发器(哈哈,个人理解),举个例子吧,好比天黑了,你开灯了,你看到东西了。你放炮仗,点燃了,一会就炸了。
2,官方定义
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
触发器有一个非常好的特性就是:触发器可以禁止或回滚违反引用完整性的更改,从而取消所尝试的数据修改。
什么意思,举个例子解释一下,街机游戏大家都玩过吧,闯过一关,闯下一关,有一关没闯过就要从第一关开始。触发器根这个类似。
官方解释如下
触发程序视为单一交易中的一部份,因此可以由原触发程序还原交易,如果在交易过程中侦测到严重的错误(如使用者中断连线),则会自动还原整个交易。
他的作用很明显了,可以保重数据的完整性,下面有一个实例来说明他的好处,以及如果使编写代码不那么复杂

二,触发器语法

三,创建解发器

1,用户表user

2,评论表comment

在这里有一个冗余字段name,我们在读取评论进可以用联合查寻来找到user表中的名字,为什么要有冗余字段呢,因简单的sql语句执行效率更高,但不是冗余字段越多越好,冗余字段多了,同样会增加数据库负担 .
我要做的事情是,当我更新user表的name时,触发器同时更新comment表,就不要写php代码去更新了,当用户被删除时,comment表中,有关该用户的数据将被删除

3,更新name触发器

有一点很让人郁闷,就是写好的触发器代码,不能修改,你要删除掉重建,郁闷中,对了还有一点就是phpmyadmin,有的能创建触发器,有的不能,有的能创建,但创建了看不到。在研究一下。

5,测试触发器是否可用

a,测试updata触发器

b,测试delete触发器

四,触发器的优点

1,触发器的"自动性"
对程序员来说,触发器是看不到的,但是他的确做事情了,如果不用触发器的话,你更新了user表的name字段时,你还要写代码去更新其他表里面的冗余字段,我举例子,只是一张表,如果是几张表都有冗余字段呢,你的代码是不是要写很多呢,看上去是不是很不爽呢。
2,触发器的数据完整性
触发器有回滚性,举个例子,我发现我很喜欢举子,就是你要更新五张表的数据,不会出现更新了二个张表,而另外三张表没有更新。
但是如果是用php代码去写的话,就有可能出现这种情况的,比如你更新了二张表的数据,这个时候,数据库挂掉了。你就郁闷了,有的更新了,有的没更新。这样页面显示不一致了,变有bug了。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql触发器(Trigger)简明总结和使用实例

相关文章

  • 2018-12-05mysql中常用的的内置函数
  • 2018-12-05常见数据库系统比较 Oracle数据库
  • 2018-12-05MySQL Order By用法分享
  • 2018-12-05mysql存储引擎和数据类型(二)_MySQL
  • 2018-12-05oracle expdp导出和impdp导入使用方法
  • 2018-12-05实例详解linux下多个mysql5.7.19(tar.gz)安装图文教程
  • 2018-12-05主键和唯一索引的有什么区别
  • 2018-12-05MySQL学习笔记2:数据库的基本操作(创建删除查看)
  • 2018-12-05通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据
  • 2018-12-05mySQL用代码添加表格内容和删除数据方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql数值函数
    • MySQL通用查询日志和慢查询日志的简单分析
    • Mysql索引的类型和优缺点详解_MySQL
    • cmd 命令行模式操作数据库( 表,字段, 数据的增删改查)
    • mysql合并多条记录的单个字段去一条记录编辑
    • MySQL之-具体分析提升Replication性能的两种架构方式
    • mysql 让一个存储过程定时作业的代码
    • MYSQL的binary解决mysql数据大小写敏感问题的方法
    • Oracle常用dump命令,记录一下备查。
    • MySQL数据库中删除重复记录的方法总结[推荐]

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有