永发信息网

mysql之触发器before和after的区别

答案:2  悬赏:70  手机版
解决时间 2021-02-08 20:12
mysql之触发器before和after的区别
最佳答案
这三个介词主要区别如下:

before意思是“在...之前”

He arrived before me. 他在我之前到达.

after意思是“在...之后”

C comes after B in the alphabet. 在字母表中C接在B后面.

until意思是“直到...时”

Until she spoke I hadn't realized she was foreign. 她要不说话我还一直不知道她是外国人.
追问:
那么根据时态要如何搭配呢?比如说before通常用于过去的过去,搭配过去完成时之类的(请再列举一下特殊的情况,谢谢)
回答:
朋友,这三个介词可以用于各种时态,没有说通常和什么时态搭配的。你看我上面的例句里,before不就是用于过去时吗?

你如果还有疑惑,找个具体的题我给你看看吧。
全部回答
数据库中触发器before与after认识 before与after区别: before:(insert、update)可以对new进行修改;after不能对new进行修改,两者都不能修改old数据。  before是先完成触发,再增删改,触发的语句先于监视的增删改,这样就有机会判断,修改即将发生的操作; after是先完成数据的增删改,再触发,触发的语句晚于监视的增删改操作,无法影响前面的增删改动作;也就是说先插入订单记录,再更新数量; 示例: 商品表g和订单表o和触发器 假设商品表有商品1,数量是10; 在订单表插入一条记录 insert into o(gid,much) values(1,20); 如果创建的触发器是after,则会发现在执行这个语句后,商品1的数量变成了-10。 也就是说触发的语句是在插入订单记录之后才执行的,这个时候是无法判断新插入订单的购买数量。 运用典型案例来区分二者的区别,新建一个触发器: #监视地点: 商品表o #监视事件:insert #触发时间:before #触发事件:update 案例:当新增一条订单记录时,判断订单的商品数量,如果数量大于10,就默认改为10 create trigger tg6 before insert on o for each row begin   if new.much > 10 then     set new.much = 10;   end if;   update g set num = num - new.much where id = new.gid; end$执行完,把之前创建的after触发器删掉,再来插入一条订单记录: insert into o(gid,much) valus(1,20)$ 执行完会发现订单记录的数量变为10,商品1的数量变为0了,就不会出现负数了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
This game has been URL-locked 解决办法
逸晨灯饰地址在什么地方,我要处理点事
母亲的枕巾中记叙了继母那些事
石家庄至井陉高速费是多少,急求
鸿庆公寓在什么地方啊,我要过去处理事情
求一些听由天命的诗句急
石狮鸿远纺织品经营部地址有知道的么?有点事
兑服是什么意思
吊顶工程的龙骨上严禁安装质量大于多少的重型
数学大大人
描写三峡的水句子
(20分)阅读下列材料:材料一 1927年6月20日
DNF 武器上的 武力B,智慧C的是怎么弄得,求
禾诚布业地址在什么地方,我要处理点事
三星s6edge十有眼球解锁的功能吗
推荐资讯
两条直线相交是两条直线共面的A.充分不必要条
艾客食品店怎么去啊,有知道地址的么
王美丽农家客栈地址在什么地方,想过去办事
怎么不让课本丢啊,我的课本每个学期都丢··
诚如金秀灵店在哪里啊,我有事要去这个地方
美军承包商是干什么的?主要有哪些?
樟树桥村怎么去啊,我要去那办事
有没有好听的慢摇,要好听的
文化路/Y408(路口)这个地址在什么地方,我要
心脏壁最厚的是BA. 右心房B. 左心室C. 右心室
奥迪a8后面的插座不会充电怎么回事
雅漾都有什么系列的爽肤水啊,价钱都是多少啊
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?