00:00
好,接下来呢,就给大家讲解一下下面这点东西是啥意思啊。他说这个fo食肉啊,是行级触发器,然后如果省略的话呀,是表级触发器。什么叫表的触发器呢?啊,咱们先说省略的这个事儿哈,每个DR增删改操作哈,不管修改多少条语句,只能触发一次。哟,咱对比一下好吧。创建一个触发器,这个触发器放在这儿啊。Creed。或者。Police。Trigger。X2。这回呢,我在写更新,因为我要修改数据嘛,是吧,写更新在更after更新。之后。然后还是作用在person表上。Declare,可可。
01:06
好,然后呢,我在这里边写上,我在这里边写上啊,比如说。啊,写一个输出。有人修改。有人修改了吧,修改了数据。行吧。只要你一修改,我就会报这个东西,好吧,来创造出来。啊,F5啊。创造完成了吧,好,咱来这样啊,我简单的先看一下输出有没有问题啊。执行。你看输出不好使,看到了吗。重启一下。在时间。是可以了,好可以之后呢,我就开始了啊,现在啊,之前是有人侵入是。
02:00
插入之后才会触发是吧,现在这个触发器什么时候触发呀。修改是吧,好嘞,Update。Person表调呃设置。Name列等于。叉叉叉,条件是ID等于一。行吧,我修改一条用户。哎,一条用户这边瞅一眼有几个了。是不是有12345个呢,我修改的是第一个呀。好嘞,来执行。执行。是不是有人修改数据啊?好,来来接着看啊,我现在把where去掉。Where,去掉。你觉得我一执行的话,我会是不是把所有的名都改成叉了。来好了,停一下,一直行。他是不是也只触发了这这句话,是不是也只搞了一次啊,所以这样的过程就是说我不管你改了多少条。
03:03
触发器只执行一次,OK,这就是咱们PPT下边说的这个叫表级触发器,不管你修改多少条,是不是只触发一次。OK吧,好,那咱们来看一看,那上边这个又是什么意思。来把这个东西我就叉二了是吧。我把它复制一份吧。这回是叉三,叉三,我在别叉三了。上面叉二已经有了,我把这叉二踢断替换掉啊替换掉,要不然他俩重冲突是吧。OK,那这个语句这个行级触发器差点啥呢?就差这个单词。咱把这个单词写在这块。叫做fo ch。所的时候对于每一行来说好吧,然后呢,我在创建这个叉二触发器啊F好,先测试一下输出有没有问题。
04:09
好使。重开。好使好使了是吧,接着来看啊,现在我在修改的时候,我这样来,我先加外条件。咋写来着?YID等于一。我现在是不是改成Y吧。我是不是把一号用户改成Y了来执行,他这里边触发了几个呀。一条吧,好嘞,Y2条先去掉。出发了几条,这回你看啊,我要执行。应该修改了五条是吧。执行。来看几条是五条啊,来五条OK,这个这这回知道这个for in什么意思了吧。来来看一下他怎么说的。针对每一行数据触发一次逻辑。
05:01
哎,只要你这一行数据被动了,那我就给你触发一次。好吧。这就是他俩的一个区别,好,这个试过了哈,这个刚才写过了吧,监听student表插入的东西是有数据添加则通知。写过了啊,然后呢,接下来是触发器中的新旧数据,这个非常简单啊,看着。在begin和end之间,可以使用两个已存在的对象。这两个对象。来输出旧数据和新数据,看我写,再来一份啊。我还是把这个,诶。叉二替换掉还是叉二好吧,这回这个叉二啊,我也不咱就对于某一行吧,然后在这里边。看着我写什么,我写。啊,原名。原名叫啥?然后新名。
06:03
叫啥?好,新名和原名这块。对吧。好,我怎么来表示这个原名呢?在这个begin和end之间,我可以使用。Old来表示旧数据,所以在这个位置原名就变成了这个看好了啊,叫冒号。old.name。而新名就可以用冒号new.name。好了,来,我把这个触发器再次来一遍。叉二再次被替换了吧?好来,呃,现在原来是。原来是,现在都是歪的是吧?再给他赶快下的面。我执行修改一。
07:00
轻重开执行。OK。知道啥意思了吧,就是原先的名叫Y,现在改成了哈达in,来看一眼啊。对吧,原来是Y现在啥的命了是吧。好,这个其实这些东西都可以改的啊,比如说也就是说我把这个条件去掉一执行。看到了吗?看这个第一条原名R的密,新名的密是吧,剩下的是不是都改过来了,然后刷新没毛病吧。这个就是新旧数据的一个用法。然后这里边儿呢,新旧数据应用的时候需要注意的是什么。DML操作只有三种是吧,当添加的时候,它只有新数据,没有旧数据,能理解。那添加一个新东西,他哪来原先的呀。更新呢,是有新有旧。那你说删除呢。
08:01
哎,有旧无新,这能理解吧,好嘞,然后呢,这个点啊,点后边这个name是不是写死的。不是先死的啊,为什么是点的是name呢?因为我这个列名叫name,如果你的列名叫啥,你就。点啥看到了吗。OK,这就是触发器中新旧数据的一个应用,而且把你刚才的触发器加上所来观察结果。好吧,把这一段呢,做一个简单的测试多少。
我来说两句