触发器

pl/sql基础知识—触发器

耗尽温柔 提交于 2020-02-11 11:46:52
n 触发器简单介绍 触发器是指隐含执行的存储过程,它不是由程序员或者是DBA来显式调用,而是因为某个操作引发执行的。当定义触发器时,必须要指定触法的事件和触发的操作,常用的触发事件包括insert,update,delete语句,而触发操作实际就是一个pl/sql块。可以使用create trigger来建立触发器。 来源: https://www.cnblogs.com/fanweisheng/p/11114133.html

MySQL视图、触发器、事务

为君一笑 提交于 2020-02-08 09:20:14
一、视图 1、什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可 2、为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3、如何用视图 create view teacher2course as select * from teacher inner join course on teacher.tid = course.teacher_id; drop view teacher2course; 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常是用于插叙,尽量不要修改视图中的数据 二、触发器   1、在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器    2、为何要用触发器?   答: 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行就会触发触发器的执行,即自动运行另外一段sql代码 -- 语法: delimiter // create trigger trigger名 after/before insert/delete/update on 表名 for each row begin sql代码。。。 END // delimiter ; -- 解释: -- after 事件执行之后触发 before 事件执行之前触发 -- 触发事件 insert

视图、触发器、事务、存储过程、内置函数、流程控制、索引

爱⌒轻易说出口 提交于 2020-02-08 04:43:23
视图 什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 如何用视图 create view teacher2course as select * from teacher inner join course on teacher.t.id = course.teacher_id 强调 在硬盘中,视图只有表结构文件,没有表数据文件 视图通常是用于查询,尽量不要修改视图中的数据 drop view teacher2course; 思考:开发过程中会不会去使用视图? 不会!!视图是mysql的功能,如果你的项目里面大量的是用到了视图,那意味着你后期想要扩展某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要现在mysql端将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 ​ 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行,就会触发触发器的执行,即自动运行另一段sql代码 创建触发器的语法 # 针对插入 create trigger tri_after

视图、触发器、事务、存储过程、函数

空扰寡人 提交于 2020-02-08 04:40:25
视图 1、什么是视图 ​ 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用就可以 2、为什么要用视图 ​ 如果要频繁使用一张虚拟表,可以不用重复查询 3、如何使用使用视图 create view teacher2course as select * from teacher inner join course on teacher.tid=course.teacher_id 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常用于查询,尽量不要修改视图的数据 # 删除视图 drop view teacher2course; 记住:开发过程中不会去使用视图,因为视图是mysql的功能,如果项目里面大量的使用到了视图,意味着后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着需要先在mysql这边将视图修改,然后再去应用程序中修改对应的sql语句,这就涉及到了跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 ​ 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 ​ 就会触发触发器的执行,即自动运行另外一段sql代码 创建触发器语法 # 针对插入 create trigger

mysql的 视图、触发器、事务、存储过程、函数、索引与慢查询优化

試著忘記壹切 提交于 2020-02-08 04:32:37
视图假设有两张表学生和老师,学生表(sid,name,tid)关联老师表(tid,tname)创建视图的语法: create view 视图名 as SQL语句 实例:create view student2teacher as select * from student inner join teacher on student.tid=teacher.tid; 创建视图后会产生一个名为 student2teacher 的表,可以直接调用。 思考:开发过程中会不会去使用视图? 不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改, 意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图, 而是通过重新修改sql语句来扩展功能 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常是用于查询,尽量不要修改视图中的数据 然后说一个关于删除视图的方法 语法:DROP VIEW 视图名称 DROP VIEW student2teacher 触发器 在某张表对数据进行增删改时自动触发的功能称之为触发器 这类行为一旦执行了就会触发触发器的执行,自动运行另一段的sql代码 创建触发器的语法 # 创建两张表create

myql深度学习11-创建触发器

爷,独闯天下 提交于 2020-02-06 23:57:52
触发器是有insert、update、delete事件进行触发某个操作,然后强制的执行其业务规则。对于同一个操作可以创建多个触发器。但是应该注意应该避免触发对本表的插入删除和修改操作,防止触发器无限循环执行。 可以使用before insert 、after insert、before update,after delete等操作。 1、创建单条执行语句触发器,这里的NEW代表的就是当前插入的记录。 例如:① CREATE TRIGGER trigger_name BEFORE INSERT on student FOR EACH ROW set @ss=New.name insert into student (name) values('LaLa3') SELECT @ss 例如:② 可以在begin …end中添加代码 CREATE TRIGGER trigger_name2 BEFORE INSERT ON student FOR EACH ROW BEGIN if new.name = 'lala' THEN set new.name = 'LALA'; END IF; END 2、创建多条执行的语句触发器,在student表中插入数据,触发两个表的插入操作。 CREATE TRIGGER trigger_name3 BEFORE INSERT ON student

.NET工程师必须掌握的知识点

风格不统一 提交于 2020-02-05 21:00:45
Microsoft SQL Server 数据库 一、创建和维护数据库 1、数据库   SQL Server 数据库的组成部分?(参见联机丛书)   如何保证数据库的完整性、安全性、并发性?   数据库设计创建步骤?(参见联机丛书 - 创建数据库计划)   数据库设计考虑的事项?(参见联机丛书) 2、SQL Server 表   设计表时应注意哪些?   如何创建和使用约束、默认值和空值?   数据完整性分类有哪些?并且它们分别包括哪些约束?   约束有哪些?语法?   如何添加、修改和删除列? 在哪些情况下不可删除列?   创建和修改表 3、SQL Server 索引   索引的概念   索引的体系结构   索引的特性   索引的优点   索引的缺点   索引语法结构   主键、约束和索引   索引创建基本准则   索引的实际应用   重建索引? 4、SQL Server 视图   http://hi.baidu.com/ztf704/blog/item/9274cefc64a93ffffc037fb4.html   视图概念   功能特性   视图的几大优点   在创建视图前请考虑则   索引视图   索引视图必须满足下列要求   分区视图   可更新分区视图   可更新的分区视图规则   可更新的分区视图数据修改规则   分布式分区视图规则   视图使用时机 5、SQL

试用D触发器和4选1数据选择器74153设计一个双向4位移位寄存器, 具体要求见下表(A、B为控制端), 左移串行输入信号为L, 右移串行输入信号为R

时间秒杀一切 提交于 2020-02-05 06:36:27
A B 输出 0 0 保持原状态 0 1 右移 1 0 左移 1 1 清零 由题目要求, 绘制状态表. 四位双向移位寄存器状态表 A B Q0* Q1* Q2* Q3* 输出 0 0 Q0 Q1 Q2 Q3 保持 0 1 R Q0 Q1 Q2 右移 1 0 Q1 Q2 Q3 L 左移 1 1 0 0 0 0 清零 将状态表转换为状态激励表. 四位双向移位寄存器状态激励表 A B D0 D1 D2 D3 输出 0 0 Q0 Q1 Q2 Q3 保持 0 1 R Q0 Q1 Q2 右移 1 0 Q1 Q2 Q3 L 左移 1 1 0 0 0 0 清零 根据绘制好的状态激励表, 用2片双4选1数据选择器74153实现D0、D1、D2和D3的逻辑表达式. 由上述分析, 绘制电路的原理图. 来源: CSDN 作者: 好梦成真Kevin 链接: https://blog.csdn.net/weixin_42048463/article/details/103626837

【数据库视频】--触发器

夙愿已清 提交于 2020-02-05 01:38:18
依然老套路,5W2H WHAT 触发器也是一种存储过程,但是发生在指定表中,用于数据执行时,使用触发器能够强制性地将不同表的数据联系起来。和一般的存储过程相比,还是不同的,不同在触发器由事件调用,而后者用名称调用。 WHY 自动,安全,强制。 TYPES 要插入时,insert触发器发挥作用,更新时,update,删除时,delete,但如果要防止,响应或记录更改时,则是DDL触发器发挥作用。 CREATE INSERT 触发器 create trigger+触发器名称+on (在某个表格或者视图上)for/after /instead of (这是用来引出触发类型的字句)+delete /insert/update +as +执行的SQL语句。 DELETE 触发器 or UPDATE 触发器 创建第一个insert触发器时,我就在想,我们为什么要使用触发器?虽然上面已经说了,但我并没有真实地感受到,于是,我试了一下没有创建触发器时,单纯地删除表格中一条信息为,效果是第一张图片所示,而创建了触发器后,会发现它能够清晰地显示出被删除的信息。update 触发器也是一样! DDL触发器 DDL触发器更能体现触发器保持数据完整性和一致性的优点,因为写到会回滚,所以事务在处理完当前事务后,就终止了。 管理,嵌套与递归 所谓的对触发器的管理,就是 修改,禁用,启用,删除

数据库之——触发器(学习笔记)

徘徊边缘 提交于 2020-02-04 20:08:52
一、触发器的定义: 触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,会激活促发其执行相应的操作。 二、创建与使用触发器: 2.1创建只有一个执行语句的触发器 例:创建一个trig_book触发器,该触发器在表t_book插入一条数据后,对表t_bookType的bookNum数量对应的bookTypeId会自动加1 create trigger trig_book after insert on t_book for each row update t_bookType set bookNum = bookNum+1 where new.bookTypeId = t_booktype.id; INSERT INTO t_book VALUES(NULL,'java好',100,'ke',1); t_book表: t_bookType表: 2.1创建有多个执行语句的触发器 例子: DELIMITER | 数据库语句 | DELIMITER;//告诉数据库这时一条语句内容 new old 触发的两个过度变量;new:新增一条语句的新增对象;old:删除一条语句的删除对象; DELIMITER | create trigger trig_book2 after delete on t_book