说明:这里只是一个简单的示例。

假设系统中有两个表:
班级表 class(班级号 class_id, 班内学生数 stu_count)
学生表 student(学号 stu_id, 所属班级号 class_id)

准备数据:

班级表中有 一个班级1 class_id:1,stu_count:2。

学生表中有 两个学生 stu_id:1,class_id:1;stu_id:2,class_id:1;分别关联到班级1;

需求:学生表每增加一个学生,所对应班级表中的班级学生数量增加1。

上才艺:

-- 创建触发器名称
create trigger update_stuCount
-- 触发时机 (BEFORE 或 AFTER)
after
-- 触发事件(INSERT、UPDATE 或 DELETE)
insert
-- 建立触发器的表名,即在哪张表上建立触发器
on student
-- 是指行级触发,对于受触发事件影响的每一行都要激活触发器的动作
for each row
-- 触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句。
begin-- 定义变量: 学生数量declare count int;-- 查询 班级表 学生数量 (根据 学生表新插入学生数据的班级id 进行查询) 并 将查询出的学生数量 赋值给 变量 count-- new.class_id 为学生表中 插入数据的 class_idset count = (select stu_count from class where class_id = new.class_id);-- 更新 班级表 学生数量字段值 (学生表每插入一条则 将班级原始学生数量加1) 根据 学生表新插入数据的班级id进行更新-- new.classID 为学生表中 插入数据的 classIDupdate class set stu_count = count + 1 where class_id = new.class_id;
end

for each row :是指每行受影响,触发器都执行,叫行级触发器。oracle触发器中分行级触发器和语句级触发器,可不写for each row,无论影响多少行都只执行一次。mysql不支持语句触发器,所以必须写for each row;

修改和删除:若要修改触发器可以先删除 后创建
注意:删除一个表的同时,也会自动删除该表上的触发器。另外,触发器不能更新或覆盖,为了修改一个触发器,必须先删除它,再重新创建。
-- 删除:drop trigger update_stuCount
-- 创建:create trigger update_stuCount

mysql 创建触发器(for each row解释)相关推荐

  1. mysql创建触发器难题_[]MYSQL创建触发器遇到很奇怪的有关问题

    [求助]mysql创建触发器遇到很奇怪的问题. 今天遇到一个很奇怪的问题,是关于创建触发器的.创建触发器代码如下 SQL code create trigger trigger_t_test_U af ...

  2. mysql 触发器采坑记录(mysql 触发器采坑记录 由于不了解mysql创建触发器要记录创建者IP,导致更改创建者IP后,触发器不可执行。 当创建触发器(视图、存储过程、函数)时,如果没有)

    mysql 触发器采坑记录(语序有点凌乱,回头再整理) 由于不了解mysql创建触发器要记录创建者IP,导致更改创建者IP后,触发器不可执行. 当创建触发器(视图.存储过程.函数)时,如果没有指定创建 ...

  3. Mysql创建触发器实现不同表的插入、更新、删除操作

    说明:Mysql5.0以上的版本才支持下面的操作. Mysql 触发器的插入.更新.删除操作. 在这里建了两个表:其中这两个表的结构不一样,这里给表admin建立触发器 在对表admin操作的同时,触 ...

  4. MySQL创建触发器(CREATE TRIGGER)

    触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 基本语法 在 MySQL 5.7 中,可以 ...

  5. MySQL 创建触发器

    触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合. 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器. 语 ...

  6. navicat for mysql创建触发器_在navicat for mysql中建立触发器

    Mysql的触发器(trigger):监视某种操作,并触发另一种操作.简要说:对表M的操作A触发了对表N的操作B. 触发器创建语法四要素: 1..引发对象(哪一张表引发的?也就是说表M是谁?) 2.触 ...

  7. mysql创建触发器的权限_MYSQL设置触发器权限问题的解决方法

    本文实例讲述了MYSQL设置触发器权限的方法,针对权限错误的情况非常实用.具体分析如下: mysql导入数据提示没有SUPER Privilege权限处理,如下所示: ERROR 1419 (HY00 ...

  8. mysql 创建触发器出错_mysql-在phpmyadmin中创建触发器时出错

    我创建了非常简单的触发器,我认为syntex也正确: CREATE TRIGGER trig1 after INSERT ON urlcontent for each row BEGIN insert ...

  9. mysql创建触发器

    新增数据: #创建t_basic_cqc表新增数据触发器 CREATE TRIGGER t_basic_cqc_insert AFTER INSERT ON t_basic_cqc FOR EACH ...

最新文章

  1. IOSUIcontrol事件
  2. 一维卷积filter_从零开始学Pytorch(七)之卷积神经网络
  3. Github无法加载或不显示图片问题
  4. SVM-支持向量机原理详解与实践之四
  5. C#与U3D中字符串尾0
  6. C++利用MySQL API连接和操作数据库
  7. GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结
  8. h5+vue+php仿微信源码-泡泡IM
  9. React 预览图片 视频 音频_HDMI录制盒斗鱼虎牙高清视频游戏直播器1080监控switch/ps4采集卡...
  10. 总结:常见的攻击服务器的手段
  11. 各互联网技术领域pdf图书合集(百度网盘)
  12. Mac下的常用快捷键操作
  13. FPGA-DDRx的VTT电源设计要点
  14. MySQL 运维 - 从零开始学习 | 超详细
  15. 论文:Discriminative Triad Matching and Reconstruction for Weakly Referring Expression Grounding
  16. openlayers2.13 地图绘点[点可以拖动,并且实时更新后台数据],测距同时更新数据到数据库
  17. titan rtx和rtx 3090 哪个强
  18. Typo3及Nette漏洞合集
  19. 如何使用大华SDK工具查询和播放设备录像?
  20. 计算机主机无法开机故障原因,台式电脑开不了机怎么办?六个秒招教你排查电脑无法开机的故障所在...

热门文章

  1. 英语 | Day3、4 x 句句真研每日一句
  2. 安徽科技学院 信网学院网络文化节 张乐
  3. 信息学奥赛一本通:2036:【例5.3】开关门
  4. css矩形外发光,CSS3 实现发光边框特效
  5. 网站盈利模式分析分类——别人的网站是怎么赚钱的!
  6. 二阶系统阻尼比与稳定性的关系
  7. int a[10]与int a[10]=0使用注意事项
  8. 陌生人不小心将话费充到你号码里了,苦苦哀求你归还,你会怎么做?
  9. ipad可以使用其他品牌的手写笔吗?apple pencil一代平替笔
  10. VirtualBox 不能为虚拟电脑 打开一个新任务 VERR_NEM_VM_CREATE_FAILED