当前位置:Gxlcms > mysql > 触发器

触发器

时间:2021-07-01 10:21:17 帮助过:34人阅读

虽然接触过触发器,可是却不太深入,有的时候碰到还是照样不太理解,现在将这一块空白补上。 触发器内容基本上如下: 值得注意的一点是:在触发器被执行时,系统会创建一个或者两个临时表Inserted和Deleted。用户保存用户更改行的新值和旧值。对于insert操作

虽然接触过触发器,可是却不太深入,有的时候碰到还是照样不太理解,现在将这一块空白补上。

触发器内容基本上如下:

\

值得注意的一点是:在触发器被执行时,系统会创建一个或者两个临时表Inserted和Deleted。用户保存用户更改行的新值和旧值。对于insert操作只会产生Inserted表,保存新插入的每条数据;对于delete操作,只会产生Deleted表,保存被删除的每条数据;对于update操作会同时产生Inserted表和Deleted表,Deleted表中存放的是更新之前的数据,Inserted表中存放的是更新之后的数据。触发器中可以直接使用这两张表。

下面举个具体的例子来说明一下:

以FOR触发器为例:

对于login表,原来数据如下:

计算机生成了可选文字:USefN己meUSeFPWd123从尤Luserlden灯fy管理员从卫L

触发器的编写过程如下:

计算机生成了可选文字:A毛TERTRIGGER[dbo].[triqupdate]ON[dbo].[loglnlFORUPDATEASBEGIN…一定义临时变量.declareeuserNa功evarchar(20户一查询刚刚更新的数据:用户名(SQL语句将管理员更新成操作员)3ele╧yWPG32V1c2VyTmFsci5lPXVzZXJOYXjN9mVmcmHYo0luc2Vyxt9lZNK7uPzQwsnPw+ay6bW9tcTTw7unw/u1xNPDu6fD3MLrdXBkYXRlbG9xbG4zZcbfdTNlclCzxGQ9"lj'where议serN柳e=eu3e:N锄e曰―END" height="264" src="http://www.68idc.cn/help/uploads/allimg/150527/141IK0R-2.png" width="544" />

执行如下语句和得到的结果如下图所示:

计算机生成了可选文字:口J日―一叨口‘J~.曰updateloqlnL,elec:一,二。msetUserldentiwhereuserNaI0e=

通过上面两个结果的对比,SQL语句将用户身份由管理员->操作员,for触发器改变了用户密码,由123->lj。就是这样一个过程。

人气教程排行