仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1059|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL网站制作之触发器的道理

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:25:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”从以上的先容中我们能够看出触发用具有壮大的功效,那末MSSQLServer是怎样办理触发器来完成这些义务呢?上面我们将对其事情道理及完成做较为具体的先容。

每一个触发器有两个特别的表:拔出表和删除表。这两个表是逻辑表,而且这两个表是由体系办理的,存储在内存中,不是存储在数据库中,因而不同意用户间接对其修正。这两个表的布局老是与被该触发器感化的表有不异的表布局。这两个表是静态驻留在内存中的,当触发器事情完成,这两个表也被删除。这两个表次要保留因用户操纵而被影响到的原数据值或新数据值。别的,这两个表是只读的,即用户不克不及向这两个表写进内容,但能够援用表中的数据。比方可用以下语句检察DELETED表中的信息:
select*fromdeleted
上面具体先容这两个表的功效:

12.7.1拔出表的功效
对一个界说了拔出范例触发器的表来说,一旦对该表实行了拔出操纵,那末对向该表拔出的一切行来讲,都有一个响应的正本寄存到拔出表中。即拔出表就是用来存储向原表拔出的内容。

12.7.2删除表的功效
对一个界说了删除范例触发器的表来说,一旦对该表实行了删除操纵,则将一切的删除行寄存至删除表中。如许做的目标是,一旦触发器碰到了强制它中断的语句被实行时,删除的那些行能够从删除表中得以恢复。

必要夸大的是,更新操纵包含两个部分,即先将更新的内容往失落,然后将新值拔出。因而对一个界说了更新范例触发器的表来说,当呈报会更新操纵时,在删除表中寄存了旧值,然后在拔出表中寄存新值。

因为触发器仅当被界说的操纵被实行时才被激活,即仅当在实行拔出、删除、和更新操纵时,触发器将实行。每条SQL语句仅能激活触发器一次,大概存在一条语句影响多笔记录的情形。在这类情形下就必要变量@@rowcount的值,该变量存储了一条SQL语句实行后所影响的纪录数,可使用该值对触发器的SQL语句实行后所影响的纪录求算计值。一样平常来讲,起首要用IF语句测试@@rowcount的值以断定前面的语句是不是实行。
能够以较低的成本向客户提供IT所有权,当节约成本成为客户最高优先级时,解决方案提供商可以向更多的客户同时提供服务。虽然有许多来自RDBMS固有的局限性。
admin 该用户已被删除
沙发
发表于 2015-1-18 14:48:45 | 只看该作者
其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。
板凳
发表于 2015-1-22 07:08:17 来自手机 | 只看该作者
你可以简单地认为适合的就是好,不适合就是不好。
第二个灵魂 该用户已被删除
地板
发表于 2015-1-30 23:36:03 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
因胸联盟 该用户已被删除
5#
发表于 2015-2-6 17:02:13 | 只看该作者
如果你是从“学习某一种数据库应用软件,从而获得应聘的资本和工作机会”的角度来问的话。
柔情似水 该用户已被删除
6#
发表于 2015-2-17 12:23:59 | 只看该作者
光写几个SQL实在叫无知。
莫相离 该用户已被删除
7#
发表于 2015-3-5 19:42:02 | 只看该作者
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
精灵巫婆 该用户已被删除
8#
发表于 2015-3-12 13:13:19 | 只看该作者
备份方面可能还是一个老大难的问题。不能单独备份几个表总是感觉不爽。灵活备份的问题不知道什么时候才能解决。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-22 20:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表