MySQL触发器在电子商城系统中的应用

更新时间:2024-03-10 作者:用户投稿原创标记本站原创 点赞:5373 浏览:16898

摘 要:触发器是一种特殊的存储过程,主要通过事件触发从而执行.通过一个订单与库存管理的案例,详细阐述了insert、delete、update触发器的特性及在电子商城系统中的应用.


关 键 词:触发器;insert;delete;update;电子商城系统

中图分类号:TP311文献标识码:A文章编号:1009-3044(2013)30-6923-03

触发器是由insert、delete和update等事件来触发某种特定操作.满足触发器的触发条件时,数据库系统就会执行触发器中定义的程序语句.这样做可以保证某些操作之间的一致性.例如,当学生表中增加了一个学生的信息时,学生的总数就必须同时改变.可以在这里创建一个触发器,每次增加一个学生的记录,就执行一次计算学生总数的操作.这样就可以保证每次增加学生的记录后,学生总数是与记录数是一致的.触发器的主要应用场合如下:

1)当向一张表中添加、删除或修改记录时,在相关表中需要进行同步操作.比如,当某客户商品,可以在生成订单时通过设计触发器自动将订单所购的库存量相应减少.

2)当表中某字段数据与其他表中数据有关联时.比如,某客户利用信用卡进行消费,可以在其刷卡时通过设计触发器来判断本次消费金额累加后是否超过了卡的最大透支额度.

3)当对某张表需要进行实时跟踪时.比如,当某客户成功某商品后,此时可以在订单表上设计触发器来通知相关人员进行及时处理.

1使用触发器

1.1创建触发器基本语法

其中触发器名可由程序员自行指定;触发时间可以是before或after,以指明触发程序是在激活它的语句之前或之后触发;触发事件指明了激活触发程序语句的类型,它的值可以是insert、delete、update其中之一;建立触发器的表名用来标识是在哪张表上创建的触发器;FOREACHROW表示任何一条记录上的操作满足触发事件都会触发该触发器.执行语句是当触发程序激活时执行的语句.不难发现,触发器必须满足以下四要素,监视地点、监视事件、监视时间和触发事件.

1.2触发器执行多行语句

通过使用BEGIN等END结构,能够定义执行多行语句的触发器.但是定义执行多行语句的触发器时,为了能在触发器定义中使用字符“;”,需使用“delimiter//”命令来重新定义语句分隔符.

1.3如何在触发器中引用行的值

1)对于insert触发器而言,新增的行用new来表示,行中每一列的值用new.列名来表示.

2)对于delete触发器而言,原来有一行,后来被删除,想引用被删除的这一行,用old来表示,old.列名就可以引用被删行中的值.

3)对于update触发器而言,修改前的数据,用old来表示,old.列名引用被修改之前行中的值.修改后的数据,用new表示,new.列名引用被修改之后行中的值.

2触发器在电子商城系统中的应用

在电子商城系统中,当某客户商品,可以在生成订单时通过设计触发器自动将订单所购的库存量相应减少.通过MySQL数据库设计实现,即对订单表完成添加、删除或修改后,在相关的库存表中亦需进行同步操作.

3结束语

本调了触发器主要通过事件触发从而执行,在实现复杂的业务逻辑基础上大大减少了系统执行时间,有效提高了系统吞吐量.通过一个订单与库存管理的案例,从添加订单、撤消订单、修改订单三个方面进行了逐一分析,详细阐述了触发器在电子商城系统中的应用.但是如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程度,因此要慎用触发器,对触发器的使用必须适当.