乐观 发表于 2015-1-16 22:25:16

MYSQL网页设计创立触发器

对免费版的用户也具有充足的支持服务。在dev.mysql.com上,一个大型的MySQL学习教程强大社区用户和开发者可以讨论所有关于MySQL的事情。这个站点拥有博客、指南、视频、技术交流会、白皮书和论坛等方式的交流。下面先容了有关触发器的观点、感化和一些基础成绩,上面我们将分离先容在MSSQLServer中怎样用SQLServer办理工具EnterpriseManager和Transaction_SQL来创立触发器。
在创立触发器之前必需思索到以下几个方面:<P>

[*]CREATETRIGGER语句必需是批处置的第一个语句;
[*]表的一切者具有创立触发器的缺省权限,表的一切者不克不及把该权限传给别的用户;
[*]触发器是数据库工具,以是其定名必需切合定名划定规矩;
[*]只管在触发器的SQL语句中能够参照别的数据库中的工具,可是,触发器只能创立在以后数据库中;
[*]固然触发器能够参照视图或一时表,但不克不及在视图或一时表上创立触发器,而只能在基表或在创立视图的表上创立触发器;
[*]一个触发器只能对应一个表,这是由触发器的机制决意的;
[*]只管TRUNCATETABLE语句好像没有WHERE从句的DELETE语句,可是因为TRUNCATETABLE语句没有被记进日记,以是该语句不克不及触发DELETE型触发器;
[*]WRITETEXT语句不克不及触发INSERT或UPDATE型的触发器。

当创立一个触发器时,必需指定触发器的名字,在哪个表上界说触发器,激活触发器的修正语句,如INSERT、DELETE、UPDATE。固然两个或三个分歧的修正语句也可以都触发统一个触发器,如INSERT和UPDATE语句都能激活统一个触发器。

12.6.1用办理工具EnterpriseManger创立触发器
其操纵步骤以下:

[*]启动EnterpriseManger,登录到指定的服务器上。
[*]睁开数据库,然后睁开要在其上创立触发器的表地点的数据库,然后单击该表。
[*]右击鼠标,在弹出菜单当选择ALLTasks,然后单击ManageTriggers…。
[*]在名字框当选择new,在文本框中输出触发器文本,如2-5所示。
[*]单击CheckSyntax反省语句是不是准确。
[*]单击Apply,在Name下拉列表中会有新创立的触发器名字。
[*]单击OK,封闭窗口创立乐成。

12.6.2用CREATETRIGGER命令创立触发器

各参数的申明以下:

[*]trigger_name
是用户要创立的触发器的名字触发器的名字,必需切合MSSQLServer的定名划定规矩,且其名字在以后数据库中必需是唯一的。
[*]Table
是与用户创立的触发器相干联的表的名字,而且该表已存在。
[*]WITHENCRYPTION
暗示对包括有CREATETRIGGER文本的syscomments表举行加密。
[*]AFTER
暗示只要在实行了指定的操纵(INSERT、DELETE、UPDATE)以后触发器才被激活,实行触发器中的SQL语句。若利用关头字FOR,则暗示为AFTER触发器,且该范例触发器仅能在表上创立。
[*]INSTEADOF
请参看“12.8INSTEADOF触发器”
[*][,][,]
关头字用来指明哪一种数据操纵将激活触发器。最少要指明一个选项,在触发器的界说中三者的按次不受限定,且各选项要用逗号离隔。
[*]WITHAPPEND
标明增添别的一个已存在某一范例触发器。只要在兼容性程度(指某一数据库举动与之前版本的MSSQLServer兼容水平)不年夜于65时才利用该选项。
[*]NOTFORREPLICATION
标明当复制处置修正与触发器相干联的表时,触发器不克不及被实行。
[*]AS
是触发器将要实行的举措。
[*]Sql_statement
是包括在触发器中的前提语句或处置语句。触发器的前提语句界说了别的的尺度来决意将被实行的INSERT、DELETE、UPDATE语句是不是激活触发器。
[*]IFUPDATE(column)
用来测定对某一断定列是拔出操纵仍是更新操纵,但不与删除操纵用在一同。
[*]IF(COLUMNS_UPDATED())
仅在INSERT和UPDATE范例的触发器中利用,用其来反省所触及的列是被更新仍是被拔出。
[*]Bitwise_operatorj
是在对照中利用的位逻辑运算符。
[*]Pdated_bitmask
是那些被更新或拔出的列的整形位掩码。比方,假如表T包含C1,C2,C3,C4,C5五列。为了断定是不是只要C2列被修正,可用2来做位掩码,假如想断定是不是C1,C2,C3,C4都被修正,可用14来做位掩码。
[*]Comparison_operator
是一对照操纵符用“=”暗示反省在updated_bitmask中界说的一切列是不是都被更新,用“>”暗示反省是不是在updated_bitmask中界说的某些列被更新。
[*]Column_bitmask
指那些被反省是不是被更新的列的位掩码。


越来越多的开发者将继续选择MySQL。Evans的总裁JohnAndrews表示,MySQL学习教程用户对MySQL和其他开源数据库的评价正在赶上甚至超过很多专有商业数据库软件。

透明 发表于 2015-1-19 11:16:37

代替了原来VB式的错误判断。比Oracle高级不少。

老尸 发表于 2015-1-25 09:18:22

发几份SQL课件,以飨阅者

深爱那片海 发表于 2015-2-2 20:50:33

但是随着数据量的增大,这种成本差距会逐渐减小,趋于相等。(500万数量级只相差10%左右)

金色的骷髅 发表于 2015-2-8 06:08:39

你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。

仓酷云 发表于 2015-2-24 19:16:58

是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。

活着的死人 发表于 2015-3-7 13:03:25

理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识

海妖 发表于 2015-3-15 06:44:39

总感觉自己还是不会SQL

兰色精灵 发表于 2015-3-21 20:28:17

是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
页: [1]
查看完整版本: MYSQL网页设计创立触发器