触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。例如,可以控制是否允许基于顾客的当前帐户状态插入定单。

触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。有关详细信息,请参见表关系。

使用触发器的优点 
触发器的优点如下:

触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。

触发器可以通过数据库中的相关表进行层叠更改。例如,可以在 titles 表的 title_id 列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。该触发器用 title_id 列作为唯一键,在 titleauthor、sales 及 roysched 表中对各匹配行进行定位。

触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。例如,触发器可以回滚试图对价格低于 10 美元的书(存储在 titles 表中)应用折扣

数据库中的触发器是用来做什么的?相关推荐

  1. 查看数据库中存在触发器的表

    这次在项目中,我们为了做数据库同步,采用了触发器机制,为数据库做迁移时,我们需要获取数据库中那些表使用了触发器,方便制作数据库安装包. 构思: 触发器在MSSQL作为一个对象进行管理,那么我们就可以通 ...

  2. 以使用QSqlQuery向数据库中插入数据为例,做一个小结

    背景: 最近在使用Qt+SQLite写一个本地数据库管理程序(使用者不懂SQL),在写向数据库中插入数据的 相关的函数时,我遇到了几个问题(暂时就这些): 1.向指定字段插入指定数据时,读取到的数据都 ...

  3. 【mysql基础知识】数据库中新建触发器,监控数据变化

    通过java实时查询数据库好像会影响查询效率,搜索网上资料,说最好使用数据库自己的触发器,用于监控数据库表的变化. 缺点是:触发器在数据库后台执行,维护困难,很有可能被忽略. 搜了半天资料,整理如下. ...

  4. 数据库中的触发器的实例讲解

    定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程.        常见的触发器有三种:分别应用于Insert , ...

  5. 【DM】达梦数据库中的触发器实例

    建测试数据集 DROP TABLE IF EXISTS TEST; CREATE TABLE TEST(ID INT IDENTITY(1,1),NAME VARCHAR(50),CITY VARCH ...

  6. 数据库中触发器的作用,规则和限制

    触发器--看到这个名字总是会想到数电中学过的触发器,有输入端和输出端,根据电平的高低来触发. 数据库中的触发器是个特殊的存储过程,主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被直 ...

  7. quotename mysql_Mysql数据库中英对照表_MySQL

    bitsCN.com --语 句 功 能 --数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE ...

  8. oracle 表导出pdm文件,如何将数据库中已有表导入到powerDesigner生成pdm文件

    1.create new PDM: 2.select database menu; 3.click Reverse  Engineer database : 4.then choose your sc ...

  9. 如何获取Oracle数据库中某表及索引、约束、触发器、对象权限的创

    2019独角兽企业重金招聘Python工程师标准>>> 对于数据库中特定的某张表而言,又该如何获取建表语句.及索引.约束.外键约束.触发器.对象权限的创建脚本呢? OCM11g-&g ...

最新文章

  1. 2019计算机科学论文研讨大会,2019年中华口腔医学会口腔医学计算机专业委员会第十七次全国口腔医学数字化学术会议第一轮会议通知...
  2. linux退出远程登录命令,【linux命令】Linux 如何查看和关闭 ssh pts/n 远程登录用户...
  3. 关于Android模拟器访问本地地址(转)
  4. EDAS ScheduleX 问题
  5. 32位汇编第七讲,混合编程,内联汇编
  6. VR: AR和VR演进哲学
  7. 一起学习C语言:C语言循环结构(二)
  8. distinct sql用法_十分钟搞懂SQL数据分析
  9. java加载失败是什么原因_这个加载失败是什么问题呢
  10. 17.EXTJs 中icon 与iconCls的区别及用法!
  11. 链表:链表中倒数第k个结点(2)
  12. mysql多个left join
  13. java 8 api 下载_JDK8 API文档(下载)
  14. 戴尔计算机网卡驱动程序,台式机网卡驱动,小编教你戴尔台式机网卡驱动
  15. linux 用户复杂秘密,linux用户的秘密之login.defs文件详解
  16. 计算机的静态存储区在哪里,静态随机访问存储器
  17. 手机ADM下载器如何使用?附教程及安卓版
  18. 游戏蓝牙耳机哪款好用?低延迟游戏蓝牙耳机推荐
  19. Elasticsearch6.8开发指南-第三章-设置Elasticsearch
  20. 【开源项目推荐-ColugoMum】这群本科生基于国产深度学习框架PaddlePadddle开源了零售行业解决方案

热门文章

  1. 1.1 小白黑群晖构建,硬件推荐,硬件选购教程
  2. 股票:简单看穿主力吸筹(原创)
  3. 联机相关,让你的好友联机如局域网般丝滑!
  4. 手把手教你如何找到属于你自己的阿里云镜像加速器
  5. 刑事案件中哪些属于自诉案件?
  6. android studio小日常(持续更新)
  7. 零基础自学R语言 1 R语言介绍 1.4 基本R软件的用法
  8. Excel 8000401a 错误 及解决办法
  9. 攻防世界web新手关之command_execution
  10. python中属性赋值查找_关于python:在dataframe列中查找字典的值并进行修改