由于项目中需要使用到触发器个人就开始简单的了解了一下。但是过程中遇到了几个问题,在此记录一下。

前三步先把效果展示出来,后面会对trigger做详细的描述

第一步:创建测试表

CREATE TABLE `t_triger_test` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`num1` INT(11) DEFAULT NULL,
`num2` INT(11) DEFAULT NULL,
`num3` INT(11) DEFAULT NULL,
`pluses` INT(11) DEFAULT NULL,
`avg` DECIMAL(11,0) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8

第二步:创建触发器trigger

DELIMITER $$

CREATE

TRIGGER trigger_testwqq BEFORE UPDATE

ON t_triger_test

FOR EACH ROW BEGIN

IF (NEW.num1 <> 0 AND NEW.num2 <> 0 AND NEW.num3 <> 0) THEN

SET NEW.AVG = (NEW.num1+NEW.num2+NEW.num3+NEW.pluses) / 4;

END IF;

END$$

DELIMITER ;

第三步:填写测试数据测试

Trigger介绍

  1. 什么是trigger?

    个人简单的将trigger理解为在某种情况下可以根据我们设置的条件去自动触发某种动作的机制。

  2. trigger语法

CREATE

TRIGGER 触发器名称 BEFORE/AFTER UPDATE/INSERT/DELETE

ON 表名

FOR EACH ROW BEGIN

//sql逻辑语句

END$$

DELIMITER ;

---------------------------字段说明--------------------------

  1. BEFORE/AFTER:设置触发器执行在事件发生的前与后。
  2. INSERT/UPDATE/DELETE:定义触发器触发的事件,可以是插入更新和删除。
  3. ON 表名:将触发器应用在哪个表上。
  4. FOR EACH ROW:触发器执行的间隔。每行都执行,叫行级触发器。不是必须的
  5. BEGIN/END:开始和结束,中间包括sql的判断和执行语句等。
  1. trigger中遇到的一个问题
    1. Can't update table 't_triger_test' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
      1. 解决办法:问题的出现是由于在创建触发器的时候sql语句的问题

转载于:https://www.cnblogs.com/tianliuyang/p/10244038.html

Mysql使用trigger触发器说明相关推荐

  1. 数据库mysql进阶—trigger触发器

    触发器 在实际开发中,我们经常会遇到这样的情况:有两个或者多个相互关联的表,如商品信息和库存信息分别存放在2个不同的数据表中,我们在添加一条新的商品记录的时候,为了保证数据的完整性,必须同时在库存表中 ...

  2. mysql 条件触发器_具有条件的MySQL更新触发器(MySQL Update Trigger with Conditions)

    具有条件的MySQL更新触发器(MySQL Update Trigger with Conditions) 我有一个PHP应用程序,通过TEST15将'Pass','Fail'或'NA'插入到字段TE ...

  3. MySQL存储过程和触发器的实现--数据库学习笔记

    从MySQL5.0版本开始就对存储过程和触发器进行了支持,在MySQL进行学习前,先查看您所使用的版本吧,方法有: 1.$mysql -V  //linux终端下 2.select version() ...

  4. Mysql高级之触发器

    原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完 ...

  5. mysql创建删除触发器的时候_mysql触发器简介及如何创建和删除触发器

    什么是mysql触发器 需要MySQL 5 对触发器的支持是在MySQL 5中增加的.因此,本章内容适用于MySQL 5或之后的版本. MySQL语句在需要时被执行,存储过程也是如此.但是,如果你想要 ...

  6. mysql 动态传入表名 存储过程_面试再问MySQL存储过程和触发器就把这篇文章给他...

    Mysql存储过程及触发器trigger 存储过程 一.一个简单的存储过程 1,一个简单的存储过程 delimiter $$create procedure testa()begin Select * ...

  7. mysql数据库有触发器吗_MySQL数据库之MySQL 触发器实现

    本文主要向大家介绍了MySQL数据库之MySQL 触发器实现 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. Summary: in this tutorial, you wil ...

  8. oracle触发器比较,Oracle使用触发器和mysql中使用触发器的比较

    一.触发器 1.触发器在数据库里以独立的对象存储, 2.触发器不需要调用,它由一个事件来触发运行 3.触发器不能接收参数 --触发器的应用 举个例子:校内网.开心网.facebook,当你发一个日志, ...

  9. MySQL的学习--触发器

    转载自https://www.cnblogs.com/CraryPrimitiveMan/p/4206942.html MySQL包含对触发器的支持.触发器是一种与表操作有关的数据库对象,当触发器所在 ...

最新文章

  1. logback-spring.xml读取spring的属性
  2. 2、安装Lync Server 2013
  3. 如何利用阿里云安全产品加强你的网站防护能力
  4. iphone打字怎么换行_库克扎心!12年iPhone老用户换机小米10 Pro,每天玩机七八小时...
  5. 使用Buildroot为Nxp i.mx6ul制作文件系统
  6. FFmpeg图像处理深度应用
  7. 学习响应式BootStrap来写融职教育网站,Bootsrtap第八天轮播图js特效
  8. ACM成长之路(干货) 我爱ACM,与君共勉
  9. BZOJ 1001 狼捉兔子
  10. Java ObjectInputStream registerValidation()方法与示例
  11. js代码优化(不定时更新)
  12. 32 配置引脚中断_PCIe的中断机制
  13. Android 简单闪屏
  14. spring学习笔记二(基于注解)
  15. jmeter 计数器的使用
  16. 最大流问题与Ford-Fulkerson算法介绍
  17. word怎么恢复自动保存_如何使用自动恢复自动保存Word文档并恢复丢失的更改
  18. 数据结构之算法——递归
  19. Redis主从复制(master/slaver)
  20. 攻防世界 mfw 解题思路

热门文章

  1. html中,纯数字或纯英文的一串字符超出父容器不会折行显示,如何解决?
  2. hudson pending - Waiting for next available executor
  3. Windows 如何在cmd命令行中查看、修改、删除与添加环境变量
  4. Altium Designer 发现的机密
  5. U盘无法安全正常弹出和删除如何处理
  6. 华为云提供针对Nuget包管理器的缓存加速服务
  7. 公众号接口,memcached缓存
  8. CSS自适应的占位符效果
  9. Z-Stack - Modification of Zigbee Device Object for better network access management
  10. c#后台修改前台DOM的css属性