MYSQL:基础——触发器
MYSQL基础——触发器
引入触发器
什么是触发器
如果你想要某条语句(或某些语句)在事件发生时自动执行。比如: 每当订购一个产品时,都从库存数量中减去订购的数量;无论何时删除一行,都在某个存档表中保留一个副本。就需要用到触发器。触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句):
DELETE;
INSERT;
UPDATE;
说明:
其他MySQL语句不支持触发器。只有表才支持触发器、视图不支持,临时表也不支持。
创建触发器
触发器用CREATE TRIGGER 语句创建,一条伪代码如下:
CREATE TRIGGER newType AFTER INSERT ON ms_articletype for each row select 'Product Added'; Error Code: 1415. Not allowed to return a result set from a trigger
创建一个触发器需要给出4条信息:
- 唯一的触发器名 newType
- 触发器关联的表 ms_articletype
- 触发器应该响应的活动 DELETE、INSERT、UPDATE
- 触发器何时执行(AFTER、BEFORE)
删除触发器:
触发器不支持更新或者覆盖,为了修改一个触发器,必须先删除它,然后重新创建它。
DROP TRIGGER newtype;
使用触发器
INSERT触发器
INSERT触发器在INSERT语句执行之前或者之后执行,需要知道以下几点:
- 在INSERT触发器代码内,可引用一个名为NEW的虚拟表,访问被插入的行。
- 在BEFORE INSERT触发器中,NEW中的值也可以被更新(允许更改被插入的值)。即,通过NEW来修改被插入的数据。
- 对于AUTO_INCRMENT列,NEW在INSERT执行之前包含0,在执行之后包含新的自动生成值。
实例:
DELETE触发器
说明:
- 在DELETE触发器代码内,你可以引用一个名为OLD的虚拟表,访问被删除的行。
- OLD表中的数据全是只读的,不能被修改。
实例:
UPDATE触发器
说明:
- 在UPDATE中,你可以使用OLD和NEW两张表。
- 在BEFORE UPDATE触发器中,NEW中的值可能也被更新(允许更改将要用于UPDATE语句中的值)
- OLD表中的值是只读的,不可以被更改。
实例:
退货实例
CREATE TRIGGER updateGoods AFTER UPDATE ON ms_sale for each row update ms_order SET or_number=or_number+(OLD.sale_number-NEW.sale_number) WHERE or_id=OLD.sale_or_id;
转载于:https://www.cnblogs.com/MrSaver/p/8012137.html
MYSQL:基础——触发器相关推荐
- (2.13)Mysql之SQL基础——触发器
(2.13)Mysql之SQL基础--触发器 关键词:Mysql触发器 二.触发器 MySQL语句在需要时被执行,存储过程也是如此,如果希望某条语句(或某些语句)在事件发生时自动执行,这就需要用到触发 ...
- MySql基础篇---004 其它数据库对象篇:视图,存储过程与函数,变量、流程控制与游标 ,触发器
第14章_视图 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 常见的数据库对象 对象 描述 表(TABLE) 表是存储数据的逻辑单元,以行和列的形 ...
- mysql latid1_MySQL触发器的基础知识分享
说明: MySQL的触发器和存储过程一样,都是嵌入到MySQL的一段程序,是MySQL 5版本新增的功能. 本文介绍: 触发器的类型和基本使用方法,讲述了触发器使用中容易产生的误区,从MySQL源码中 ...
- MySQL基础总结(一)
MySQL基础总结(一) 文章目录 MySQL基础总结(一) 一.MySQL架构 1.MySQL架构图 2.SQL语句在MySQL中的执行流程 二.存储引擎 1.查看存储引擎 2.设置存储引擎 3.存 ...
- mysql latid1_mysql触发器的实战经验
1 引言 Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多 ...
- Mysql基础代码(不断完善中)
Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql/* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证 ...
- mysql缺少函数_总结零散的 MySQL 基础知识
前言 在日常开发中,一些不常用且又比较基础的知识,过了一段时间之后,总是容易忘记或者变得有点模棱两可.本篇主要记录一些关于MySQL数据库比较基础的知识,以便日后快速查看. SQL命令 SQL命令分可 ...
- Mysql基础篇(1)—— 基础概念、DML基本语法和表连接
前言 Mysql基础篇相关的内容是看了康师傅的视频做的笔记吧 数据库相关概念 DB: 数据库(Database) 存储数据的仓库,本质是一个文件系统.它保存了一系列有组织的数据. DBMS:数据库 ...
- MySQL——基础知识
目录 一.SQL组成 1)数据定义语言(Data Definition Language,DDL) 2)数据操作语言(Data Manipulation Language,DML) 3)数据查询语言( ...
最新文章
- 大话中文文本分类之前数据处理
- java正则匹配非html字符串_java正则表达式去除html中所有的标签和特殊HTML字符(以开头的)...
- 程序员的算法课(1)-算法概述
- pycharm安装带激活码2018
- 【ElasticSearch】Es 源码之 MonitorService 源码解读
- gcd常见结论及gcd与斐波那契结合--hdu6363.
- Android自带硬解码解码类型说明MediaCodec使用必看
- sql与ORACLE链接服务器相互访问方法
- linux 安装redies
- 浪潮服务器pxe安装操作系统,规划 PXE 启动的操作系统部署
- 如何选择合适的离心机,有哪些重要参数——TFN FUP LB6CM 落地式低速大容量冷冻离心机
- 开源视频云转码 m3u8_8种开源视频游戏
- PLC可编程控制器、变频调速综合实验装置(网络型)
- 走进tensorflow第六步——拟合一元二次函数
- Java Web之第11章JSP开发模型
- 微信小程序使用image组件显示图片的方法
- [solr] solr Similarity:切换不同相似度计算方法
- pycharm异常问题之Unable to save settings: Failed to save settings. Please restart PyCharm
- Drupal9自定义module添加多个定时任务
- 怎样配置外汇ea服务器运行,外汇EA如何在MT4上运行?以及如何挂到服务器?
热门文章
- ecshop 广告设置
- 在WPF中处理Windows消息
- (转)用 Fiddler 看看 UpdatePanel 发生了什么
- CSS3笔记之基础篇(二)颜色和渐变色彩
- es6 --- Reflect的静态方法
- ES5-拓展 原型链、继承、类
- Python-爬虫-requests
- mysql简单创建数据库权限(待修改备注)
- .NET Core TDD 前传: 编写易于测试的代码 -- 全局状态
- centos 安装mysql时错误unknown variable #39;defaults-file=/opt/redmine-2.6.0-2/mysql/my.cnf#39;...