当前课程知识点:数据库技术应用 >  学习情境四、银行存取款机数据库编程 >  模块2、银行存取款机触发器 >  4.2.2UPDATE触发器

返回《数据库技术应用》慕课在线视频课程列表

4.2.2UPDATE触发器在线视频

下一节:任务实施:银行存取款机UPDATE触发器

返回《数据库技术应用》慕课在线视频列表

4.2.2UPDATE触发器课程教案、知识点、字幕

大家好

欢迎来到数据库技术应用开放课程

今天的任务是update特触发器

在银行存取款业务中

每次用户进行余额修改的时候

自动识别交易类型是存款还是取款

然后将交易信息插入到交易信息表当中

那么这个问题怎么解决

我们本节课的目标就是让大家通过这个任务

继续理解触发器的优点

掌握update触发器的创建方法

那么对于update的触发器的创建来说

它的语法结构和我们前面所讲的语法结构是一样的

只不过在触发器名称触发器时间的后面

我们触发器的类型确定了就是update触发器

其他的都沿用触发器创建的语法格式

那为了完成这个任务我们需要分析一下

每次用户进行余额修改的时候

自动识别交易金额是存款还是取款

然后把交易信息插入的交易业绩表当中

我们需要按照前面我们所讲解的触发器的原理去思考一下

在这个问题当中触发原因是什么触发结果又是什么

我们分析一下触发的原因

其实就是银行卡信息表当中我们余额的一个修改

那么根据这个修改的情况

就可以去判断他是存款还是取款了

所以触发原因就是cardinfo表的update操作

那么触发结果是什么

来判定我的交易类型存款还是取款

并且将交易信息插入到交易信息表当中

那么我们的触发器就可以来设计了

Create trigger触发器名称

after update on cardinfo for each row

begin 下面是我相应的一个触发结果

那要是像刚刚说触发结果

我先声明几个变量

大家来看一下

declare vtype varchar 10

这个变量里将来存什么

存的一定是我的交易类型

接下来

declare m1 int

declare m2 int

这两个变量当中又来存什么

这两个变量用来存放的是我的余额

那select. old balance into m1 from

cardinfo where cardID =old.cardID

用了一个select into from where结构

实际上是从表当中查出数据

放在了我们的m1变量里

从哪个表当中查数据

大家看一下从cardinfo表当中来查数据

Where cardID等于old . cardID

也就是说用到了我们的临时表OLD

咱们前面说过

如果你是update触发器的话

既用到old也用到new

因为你带删除的数据是先放在old里的

带插入的数据是放在new里面的

进行业务验证

所以第一次取数据放在m1里的时候

他是进行了old表的一个验证

那么第二次大家看

select new . balance into m2

from cardinfo where cardID=old . cardID

这是从待插入的这个表当中取出来

另一个old . balance放在了m2当中

那取出这两个余额有什么用

我们要做存款还是取款的判断

所以当然要比较这两个余额的大小了

IF m2>m1

If m2>m1

那说明什么情况

说明是存入状态对吧

所以下面应该是then set vtype 等于存入

那相反

else set vtype等于 支取

end if结束

然后接下来还有一件事没有做

将交易信息插入到交易信息表当中

我们用到insert into values把这条数据插进去

end结束

然后恢复我们的结束符分号

这样的话就可以实现在存取款业务当中

当用户进行余额修改的时候

自动识别是支取还是存入

并且将交易信息插入到我们的交易信息表当中了

大家下去可以在我们的mysql环境当中去测试一下

好我们来看怎么测试

既然你的触发原因是cardinfo表当中余额的修改

那么测试的时候一定用到update set where语句

update哪个表

cardinfo表

set什么

balance等于balance减200

where cardID等于一个卡号

这样的话就可以根据你现在的一个情况

做的修改的一个情况来系统自动给出他是支取还是存入

并且把相关的记录放在我们的transinfo

所以为了看结果

我们还需要select * from cardinfo

select * from transinfo 来看具体表的一个数据的变化

今天的拓展任务是员工管理数据库update的触发器的应用

感谢大家的聆听

数据库技术应用课程列表:

学习情境一、银行存取款机数据库创建与管理

-模块1、数据库的基础知识

--1.1.1数据库设计-数据库的基本概念

--1.1.2数据管理的发展和数据库体系结构

--数据库的基础知识

-模块2、MYSQL介绍与安装

--MYSQL介绍与安装

--MYSQL介绍与安装

-模块3、银行存取款机数据库的创建与维护

--1.3数据库的创建与维护

--银行存取款机数据库的创建与维护

-模块4、银行存取款机数据库的设计

--1.4.1数据库的概念模型设计

--1.4.2数据库的数据模型设计

--1.4.3数据库的关系规范化

--银行存取款机数据库的设计

学习情境二、创建和管理银行存取款机数据表

-模块1、表的创建

--2.1表的创建

--任务实施:银行存取款机表的创建

--表的创建

-模块2、表的管理

--2.2表的管理

--任务实施:银行存取款机表的管理

--表的管理

-模块3、索引

--2.3索引

--任务实施:银行存取款机索引

--索引

-实践小课堂:宠物电商管理平台数据库和表的创建

--实践小课堂:宠物电商管理平台数据库和表的创建

学习情境三、银行存取款机数据操纵

-模块1、银行存取款机数据插入、修改和删除

--3.1.1数据插入

--任务实施:银行存取款机数据插入

--3.1.2数据修改和删除

--任务实施:银行存取款机数据修改和删除

--实践小课堂:宠物电商管理平台数据插入

--银行存取款机数据插入、修改和删除

-模块2、银行存取款机简单查询

--3.2.1简单查询

--任务实施:银行存取款机简单查询

--实践小课堂:宠物电商管理平台简单查询

--3.2.2统计查询

--任务实施:银行存取款机统计查询

--实践小课堂:宠物电商管理平台条件查询

--银行存取款机简单查询和统计查询

-模块3、银行存取款机连接查询

--3.3连接查询

--任务实施:银行存取款机连接查询

--银行存取款机连接查询

-模块4、银行存取款机子查询

--3.4子查询

--任务实施:银行存取款机子查询

--实践小课堂:宠物电商管理平台多表查询

--银行存取款机子查询

-模块5、银行存取款机分类汇总与排序

--3.5分类汇总与排序

--任务实施:银行存取款机分类汇总与排序

--实践小课堂:宠物电商管理平台分类汇总和排序

--银行存取款机分类汇总与排序

-模块6、银行存取款机视图

--3.6.1视图的创建与管理

--任务实施:银行存取款机视图的创建与管理

--3.6.2视图的更新

--任务实施:银行存取款机视图的更新

--实践小课堂:宠物电商管理平台视图

--银行存取款机视图

学习情境四、银行存取款机数据库编程

-模块1、银行存取款机存储过程

--4.1.1创建和执行存储过程

--任务实施:银行存取款机创建和执行存储过程

--实践小课堂:宠物电商管理平台存储过程

--4.1.2事务

--任务实施:银行存取款机事务

--实践小课堂:宠物电商管理平台存储函数

--银行存取款机存储过程

-模块2、银行存取款机触发器

--4.2.1INSERT触发器

--任务实施:银行存取款机INSERT触发器

--实践小课堂:宠物电商管理平台INSERT触发器

--4.2.2UPDATE触发器

--任务实施:银行存取款机UPDATE触发器

--实践小课堂:宠物电商管理平台UPDATE触发器

--4.2.3DELETE触发器

--任务实施:银行存取款机DELETE触发器

--实践小课堂:宠物电商管理平台DELETE触发器

--银行存取款机触发器

教学情境五、银行存取款机数据库安全性

-模块1、MYSQL用户管理

--模块1、MYSQL用户管理

--MYSQL用户管理

-模块2、MYSQL权限管理

--模块2、MYSQL权限管理

--MYSQL权限管理

-模块3、MYSQL数据库的锁机制

--MYSQL数据库的锁机制

--MYSQL数据库的锁机制

-模块4、MYSQL备份和恢复

--模块4、MYSQL备份和恢复

--MYSQL备份和恢复

4.2.2UPDATE触发器笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。