第十章触发器辨析.ppt

* s * s * 讲解要点: 假定该系统的数据库设计需要两张表:帐户信息表(bank)存放帐户的信息, 交易信息表(transInfo)存放每次的交易信息。 演示:“示例1:为什么需要触发器.sql”,演示时请设置为较大字体, 以便后排的学员能看清演示的结果。 提问学员:上述结果有什么错误?您一定发现了,当张三取钱200元时,虽然交易信息表(transInfo)中保存了取钱200元的交易信息,但帐户表(bank)中的余额仍是1000,没有自动跟随修改。显然,我们应该根据交易类型是“支取”还是“存入”,自动减少或增加帐户表中的余额。而且,它还应该具有事务的特征:一旦交易失败,余额修改也应该自动取消 。 提问学员:如何解决呢?这种特殊的业务规则使用普通约束行吗 ? 答案显然是否定的 。 使用事务行吗?事务能保证一旦交易失败,余额修改也自动取消。但实现不了自动修改的触发功能 。 最优的解决方案就是采用触发器,它是一种特殊的存储过程,并且也具有事务的功能。它能多表之间执行特殊的业务规则或保持复杂的数据逻辑关系 。 * 讲解要点: 再看一个例子:目前有两张表,分别存放在职员工和退休员工的信息。 假定现赵二退休:赵二将从员工表中删除。 一旦删除赵二的信息,应自动触发一个动作:将赵二的信息保存到退休员工表中。 强调:自动触发,而不是手动,如何实现呢,使用触发器。 * 讲解要点: 1.触发器

文档评论(0)

1亿VIP精品文档

相关文档