Php-mysql的触发器(V客学院知识分享)

来源:互联网 发布:阿里云 香港 速度 编辑:程序博客网 时间:2024/06/02 07:53


Php-mysql的触发器(V客学院知识分享)

 

第一部分:基本语法结构

 

CREATE TRIGGER <触发器名称>  --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象.

{ BEFORE | AFTER }  --触发器有执行的时间设置:可以设置为事件发生前或后。

{ INSERT | UPDATE | DELETE }  --同样也能设定触发的事件:它们可以在执行insertupdatedelete的过程中触发。

ON <表名称>  --触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器。

FOR EACH ROW  --触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。

<触发器SQL语句>  --触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。

 

 

 

第一:  CREATE TRIGGER <触发器名称>    建立触发器

 

第二:{ BEFORE | AFTER }              触发时间

 

 

第三:{ INSERT | UPDATE | DELETE }   触发的事件

 

 

第四:ON                             表名

 

 

第五: FOR EACH ROW                触发语句

 

 

 

begin

 

 

end

 

 

第二部分:实例分析讲解

 

 

实例一:当下订单之后把减库存

 

 

  产品表 product

 

  

  pro_id,pro_name,pro_price,pro_num,

 

   1       aaa        20       10

 

   2       bbb        30       12

 

 

   3       ccc        25       32

 

 

  4        ddd        21       10

  

 

  订单表 order

 

 

  order_id,pro_id,order_num

 

 

   1,        1        5

 

 

DROP TRIGGER IF EXISTS t_po;

CREATE TRIGGER  t_po

AFTER INSERT ON orderlist

FOR EACH ROW

begin

update product set pro_num=pro_num-new.order_num where pro_id=new.pro_id;

end;

 

实例二:当订单退回的时候恢复库存

 

 

 

 

 

DROP TRIGGER IF EXISTS t_po_d;

CREATE TRIGGER  t_po_d

AFTER DELETE ON orderlist

FOR EACH ROW

begin

update product set pro_num=pro_num+old.order_num where pro_id=old.pro_id;

end;

 

 

实例三:连环触发

 

 

SELECT * FROM bigclass;

SELECT * FROM smallclass;

SELECT * FROM product;

 

 

 

  

DROP TRIGGER IF EXISTS t_b_d;

CREATE TRIGGER  t_b_d

BEFORE DELETE ON bigclass

FOR EACH ROW

begin

 

delete from smallclass where BigClass_ID=old.BigClass_ID;

 

end;

 

 

 

DROP TRIGGER IF EXISTS t_s_d;

CREATE TRIGGER  t_s_d

BEFORE DELETE ON smallclass

FOR EACH ROW

begin

 

delete from product where SmallClass_ID=old.SmallClass_ID;

 

end;

 

 

本文通过语法结构分析了在项目中常用的触发器PHP开发、web前端、UI设计、VR开发专业培训机构-vIT学院版权所有,转载请注明出处,谢谢合作!)

 

阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 客户说物流太慢了 要退货怎么办 京东退货物流系统不更新怎么办 把货交给物流但是物流丢货了怎么办 货还在物流就申请退款怎么办 荣耀4x返回键不管用怎么办 华为手机关不了机也开不了机怎么办 荣耀畅玩5x手机密码忘了怎么办 华为短信验证码失败其他错误怎么办 红米3x手机卡顿反应慢怎么办 华为手机不停的自动重启怎么办 华为荣耀4x卡在开机界面怎么办 华为荣耀8青春版密码忘了怎么办 华为手机内存满了开不起来怎么办 华为荣耀畅玩平板2比较卡怎么办 红米4x太卡了怎么办 魅蓝e移动卡只有2g网络怎么办 联通关闭2g网络双卡手机怎么办 小米6x手机插耳机音量大怎么办 音量键和亮度键盘拆了怎么办 荣耀v10锁屏密码忘了怎么办 荣耀9锁屏密码忘记了怎么办 华为荣耀v9锁屏密码忘记了怎么办 荣耀手机密码忘了怎么办数字锁 华为畅享5忘了开机密码怎么办 华为p9连接热点忘了密码怎么办 苹果手机用联通卡信号不好怎么办 魅族手机充电口松了怎么办 华为手机刷机失败开不了机怎么办 华为刷机失败开不了机怎么办 银行卡信息被盗密码被改该怎么办 全民k歌手机话筒有杂音怎么办 手机刷机清除数据需要密码怎么办 oppo手机屏锁密码忘了怎么办 华为手机摔了一下开不了机怎么办 华为v9手机删除隐私空间了怎么办 华为荣耀畅玩5x卡顿怎么办 淘宝买家收到货后恶意退款怎么办 手机淘宝申请退款后不想退了怎么办 买房交首付时的收据发票掉了怎么办 苹果商城消费提示问题忘记了怎么办 psd文件超过2g不能存储怎么办