MySQL触发器在电子商城系统中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQL触发器在电子商城系统中的应用
作者:张吉力
来源:《电脑知识与技术》2013年第30期
摘要:触发器是一种特殊的存储过程,主要通过事件触发从而执行。通过一个订单与库存管理的案例,详细阐述了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其中之一;建立触发器的表名用来标识是在哪张表上创建的触发器;FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器。执行语句是当触发程序激活时执行的语句。不难发现,触发器必须满足以下四要素,监视地点、监视事件、监视时间和触发事件。
1.2 触发器执行多行语句
通过使用BEGIN…END结构,能够定义执行多行语句的触发器。但是定义执行多行语句的触发器时,为了能在触发器定义中使用字符“;”,需使用“delimiter //”命令来重新定义语句分隔符。
1.3 如何在触发器中引用行的值
1)对于insert触发器而言,新增的行用new来表示,行中每一列的值用new.列名来表示。
2)对于delete触发器而言,原来有一行,后来被删除,想引用被删除的这一行,用old 来表示,old.列名就可以引用被删行中的值。
3)对于update触发器而言,修改前的数据,用old来表示,old.列名引用被修改之前行中的值。修改后的数据,用new表示,new.列名引用被修改之后行中的值。
2 触发器在电子商城系统中的应用
在电子商城系统中,当某客户订购商品,可以在生成订单时通过设计触发器自动将订单所购的库存量相应减少。通过MySQL数据库设计实现,即对订单表完成添加、删除或修改后,在相关的库存表中亦需进行同步操作。
3 结束语
本文强调了触发器主要通过事件触发从而执行,在实现复杂的业务逻辑基础上大大减少了系统执行时间,有效提高了系统吞吐量。通过一个订单与库存管理的案例,从添加订单、撤消订单、修改订单三个方面进行了逐一分析,详细阐述了触发器在电子商城系统中的应用。但是如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程度,因此要慎用触发器,对触发器的使用必须适当。
参考文献:
[1] 钱雪忠,王燕玲,张平.MySQL数据库技术与实验指导[M].北京:清华大学出版社,2012.
[2] 唐汉明.深入浅出MySQL数据库开发、优化与管理维护[M].北京:人民邮电出版社,2010.
[3] 黄缙华.MySQL入门很简单[M].北京:清华大学出版社,2013.
[4] 吴吉义.MySQL原理与Web系统开发[M].北京:清华大学出版社,2009.
[5] 单建魁,赵启升.数据库系统实验指导[M].北京:清华大学出版社,2004.