mysql之触发器的使用
cr一:创建goods表和orders表;
mysql> use mydb16_tirgeer
Database changed
mysql> create table goods(-> gid char(8) primary key,-> name varchar(10),-> price decimal(8,2),->-> num int);
Query OK, 0 rows affected (0.03 sec)```powershell
mysql> create table orders(-> oid int primary key auto_increment,-> gid char(10) not null,-> name varchar(10),-> price decimal(8,2),-> onum int,-> otime date);
Query OK, 0 rows affected (0.01 sec)
二:导入商品记录;```powershell
mysql> insert into goods values('A0001','橡皮',2.5,100),('B0001','小谐本',2.8,210);
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> insert into goods values('C0001','铅笔',1.2,120),('D0001','计算器',28,20);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0mysql> select * from goods;
+-------+--------+-------+------+
| gid | name | price | num |
+-------+--------+-------+------+
| A0001 | 橡皮 | 2.50 | 100 |
| B0001 | 小谐本 | 2.80 | 210 |
| C0001 | 铅笔 | 1.20 | 120 |
| D0001 | 计算器 | 28.00 | 20 |
+-------+--------+-------+------+
4 rows in set (0.00 sec)
三:
mysql> create trigger orders_after_insert_trigger-> after insert on orders for each row-> update goods set num=num-new.onum-> where gid=new.gid;
Query OK, 0 rows affected (0.01 sec)mysql> insert into orders (gid,name,price,onum,otime) value('C0001','铅笔',1.2,80,now());
Query OK, 1 row affected, 1 warning (0.01 sec)mysql> select * from goods;
+-------+--------+-------+------+
| gid | name | price | num |
+-------+--------+-------+------+
| A0001 | 橡皮 | 2.50 | 100 |
| B0001 | 小谐本 | 2.80 | 210 |
| C0001 | 铅笔 | 1.20 | 40 |
| D0001 | 计算器 | 28.00 | 20 |
+-------+--------+-------+------+
4 rows in set (0.00 sec)mysql> select * from orders;
+-----+-------+------+-------+------+------------+
| oid | gid | name | price | onum | otime |
+-----+-------+------+-------+------+------------+
| 1 | C0001 | 铅笔 | 1.20 | 80 | 2024-07-26 |
+-----+-------+------+-------+------+------------+
1 row in set (0.00 sec)
2.
mysql> create trigger orders_after_delete_trigger-> after delete on orders for each row-> update goods set num=num+old.onum-> where gid = old.gid;
Query OK, 0 rows affected (0.00 sec)
mysql> delete From orders where gid='C0001';
Query OK, 1 row affected (0.00 sec)mysql> select * from goods;
+-------+--------+-------+------+
| gid | name | price | num |
+-------+--------+-------+------+
| A0001 | 橡皮 | 2.50 | 100 |
| B0001 | 小谐本 | 2.80 | 210 |
| C0001 | 铅笔 | 1.20 | 120 |
| D0001 | 计算器 | 28.00 | 20 |
+-------+--------+-------+------+
4 rows in set (0.00 sec)mysql> select * from orders;
Empty set (0.00 sec)
3.
mysql> create trigger orders_after_update_trigger-> after update on orders for each row-> update goods set num=num+(old.onum-new.onum)-> where gid=old.gid;
Query OK, 0 rows affected (0.01 sec)mysql> insert into orders (gid,name,price,onum,otime) value('C0001','铅笔',1.2,80,now());
Query OK, 1 row affected, 1 warning (0.00 sec)mysql> select * from orders;
+-----+-------+------+-------+------+------------+
| oid | gid | name | price | onum | otime |
+-----+-------+------+-------+------+------------+
| 2 | C0001 | 铅笔 | 1.20 | 80 | 2024-07-26 |
+-----+-------+------+-------+------+------------+
1 row in set (0.00 sec)mysql> select * from goods;
+-------+--------+-------+------+
| gid | name | price | num |
+-------+--------+-------+------+
| A0001 | 橡皮 | 2.50 | 100 |
| B0001 | 小谐本 | 2.80 | 210 |
| C0001 | 铅笔 | 1.20 | 40 |
| D0001 | 计算器 | 28.00 | 20 |
+-------+--------+-------+------+
4 rows in set (0.00 sec)mysql> update orders set onum=35 where gid = 'C0001';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> select * from orders;
+-----+-------+------+-------+------+------------+
| oid | gid | name | price | onum | otime |
+-----+-------+------+-------+------+------------+
| 2 | C0001 | 铅笔 | 1.20 | 35 | 2024-07-26 |
+-----+-------+------+-------+------+------------+
1 row in set (0.00 sec)mysql> select * from goods;
+-------+--------+-------+------+
| gid | name | price | num |
+-------+--------+-------+------+
| A0001 | 橡皮 | 2.50 | 100 |
| B0001 | 小谐本 | 2.80 | 210 |
| C0001 | 铅笔 | 1.20 | 85 |
| D0001 | 计算器 | 28.00 | 20 |
+-------+--------+-------+------+
4 rows in set (0.00 sec)
mysql> use mydb7_openlab;
Database changed
mysql> show tables;
+-------------------------+
| Tables_in_mydb7_openlab |
+-------------------------+
| dept |
| emp |
| emp_new |
| user |
+-------------------------+
4 rows in set (0.00 sec)delimiter //
mysql> create procedure s1()-> begin-> select name,incoming from emp_new;-> end //
Query OK, 0 rows affected (0.01 sec)mysql> delimiter ;
mysql> call s1();
+------+----------+
| name | incoming |
+------+----------+
| 张三 | 4000 |
| 李四 | 3500 |
| 王五 | 2000 |
| 赵六 | 7500 |
| 荣七 | 8500 |
| 牛八 | 7300 |
+------+----------+
6 rows in set (0.00 sec)Query OK, 0 rows affected (0.02 sec)mysql>
mysql> create procedure s2(in_name varchar(11),out out_age int)-> begin-> select age into out_age from emp_new where name=in_name;-> end //
Query OK, 0 rows affected (0.00 sec)mysql> call s2('王五',@age);-> //
Query OK, 1 row affected (0.00 sec)mysql> delimiter ;
mysql> select @age;
+------+
| @age |
+------+
| 24 |
+------+
1 row in set (0.00 sec)
mysql> create procedure s3(in in_dept int , out avg_sal float)-> begin-> select avg(incoming) into avg_sal from emp_new where dept2=in_dept;-> end //
Query OK, 0 rows affected (0.00 sec)mysql> call s3(101,@avg_sal)//
Query OK, 1 row affected (0.00 sec)mysql> delimiter ;
mysql> select @avg_sal;
+-------------------+
| @avg_sal |
+-------------------+
| 3166.666748046875 |
+-------------------+
1 row in set (0.00 sec)
相关文章:

mysql之触发器的使用
cr一:创建goods表和orders表; mysql> use mydb16_tirgeer Database changed mysql> create table goods(-> gid char(8) primary key,-> name varchar(10),-> price decimal(8,2),->-> num int); Query OK, 0 rows affected (0.0…...
使用Java和Hazelcast实现分布式数据存储
使用Java和Hazelcast实现分布式数据存储 大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在分布式系统中,实现高效的数据存储和管理是非常重要的。Hazelcast作为一个内存数据网格(IMDG)&…...

Hi3751V560_SELinux
Hi3751V560_SELinux setenforce Enforcing setenforce Permissive(或“setenforce 0”) getenforce V560:demo本身的: [ 13.765161] type=1400 audit(1628821512.905:4): avc: denied { read } for pid=1926 comm="system_server" name="ifindex" d…...

邮件安全篇:邮件反垃圾系统运作机制简介
1. 什么是邮件反垃圾系统? 邮件反垃圾系统是一种专门设计用于检测、过滤和阻止垃圾邮件的技术解决方案。用于保护用户的邮箱免受未经请求的商业广告、诈骗信息、恶意软件、钓鱼攻击和其他非用户意愿接收的电子邮件的侵扰。 反垃圾系统的常见部署形式 2. 邮件反垃圾…...

LoRaWAN设备的两种入网方式(ABP和OTAA)
目录 一、OTAA 1、名词解释 2、入网流程 二、ABP 三、两种入网方式的比较 一、OTAA 1、名词解释 (1)AppEUI:64位(8字节)的唯一标识符,用于标识特定的应用程序或组织(如果用的是chirpstac…...
【Rust光年纪】极致性能与灵活选择:Rust语言数学优化库详解
Rust语言中的数学优化:六大利器汇总 前言 在当今信息时代,数据处理和数学优化成为了各行各业中不可或缺的重要环节。为了满足对高效、快速计算的需求,Rust语言逐渐成为了许多开发者的首选,因其性能优越、并发安全等特点。本文将…...
机器学习 | 回归算法原理——最小二乘法
Hi,大家好,我是半亩花海。很早便想学习并总结一本很喜欢的机器学习图书——立石贤吾的《白话机器学习的数学》,可谓通俗易懂,清晰形象。那就在此分享并作为学习笔记来记录我的学习过程吧!本章的回归算法原理基于《基于…...
.NET Core 中的字符串压缩方法
字符串压缩的概念 字符串压缩通常指的是通过算法减少字符串表示所需的数据量,同时保持字符串的原始信息或能够无损地恢复原始字符串。这种压缩可以是针对文本数据的特定算法,也可以是更通用的数据压缩算法。 .NET Core 中的字符串压缩方法 使用数据压…...
SQL 基础知识
SQL(结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。以下是一些 SQL 的基础知识: 基本概念 数据库(Database): 存储和管理数据的容器。一个数据库可以包含多个表。 表(Table&…...

【数据结构初阶】单链表经典算法题十二道——得道飞升(上篇)
目录 1、移除元素 2、反转链表 3、链表的中间节点 4、合并两个有序链表 Relaxing Time!!! ———————————————— 天气之子幻 ———————————————— 1、移除元素 思路: 创建一个新链表࿰…...
Python爬虫技术 第16节 XPath
XPath是一种在XML文档中查找信息的语言,尽管XML和HTML在语法上有区别,但XPath同样适用于HTML文档的解析,尤其是在使用如lxml这样的库时。XPath提供了一种强大的方法来定位和提取XML/HTML文档中的元素和属性。 XPath基础 XPath表达式由路径表…...

本地部署,Whisper: 开源语音识别模型
目录 简介 特点 应用 使用方法 总结 GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak SupervisionRobust Speech Recognition via Large-Scale Weak Supervision - openai/whisperhttps://github.com/openai/whisper 简介 Whisper 是一个由 O…...
history,hash缓存那些事
vue-router 中的 createWebHistory,createWebHashHistory两种模式 createWebHistory 是基于 window.history 对象是HTML5提供的用于维护当前标签页浏览历史的对象,主要功能是前进后退和在不刷新页面的情况下,修改地址栏里的URL地址。histor…...

Spring Boot的Web开发
目录 Spring Boot的Web开发 1.静态资源映射规则 第一种静态资源映射规则 2.enjoy模板引擎 3.springMVC 3.1请求处理 RequestMapping DeleteMapping 删除 PutMapping 修改 GetMapping 查询 PostMapping 新增 3.2参数绑定 一.支持数据类型: 3.3常用注解 一.Request…...
Spark 解析嵌套的 JSON 文件
1、什么是嵌套的JSON文件? 嵌套的JSON文件是指文件中包含了嵌套的JSON对象或数组。例如,以下是一个嵌套的JSON文件的示例: {"name": "John","age": 30,"address": {"street": "123…...

VMware虚拟机中CentOS7自定义ip地址并且固定ip
配置固定ip(虚拟机) 前提:虚拟机网络配置成,自定义网络并选择VMnet8(NAT 模式) 操作(如下图):点击虚拟机–》设置–》–》硬件–》网络适配器–》自定义:特定虚拟网络–》选择:VMnet8(NAT 模式) 虚拟机网络设置 需要记…...

CCS(Code Composer Studio 10.4.0)编译软件中文乱码怎么解决
如果是所有文件都出现了中文乱码这时建议直接在窗口首选项中修改:选择"Window" -> "Preferences",找到"General" -> "Workspace",将"Text file encoding"选项设置为"Other&quo…...
Flutter 3 完全支持网页端
Flutter 3 可以用于开发网页端应用。自 Flutter 2.0 起,Flutter 就已经支持 Web 平台,并且在 Flutter 3 中得到了进一步的改进和优化。以下是使用 Flutter 3 开发网页端的一些优势和特点: Flutter 3 开发网页端的优势: 跨平台一致…...
vue.js入门
目录 一. 框架概述 二. vue常用命令 2.1 插值表达式 2.2 v-text 2.3 v-html 2.4 v-on 2.5 v-model 2.6 v-show 2.7 v-if 2.8 v-else 2.9 v-bind 2.10 v-for 三. vue生命周期函数 目录 一. 框架概述 二. vue常用命令 2.1 插值表达式 2.2 v-text 2.3 v-html 2…...

API签名认证
前言(项目背景): 这个API签名认证是API开放平台得一个重要环节,我们知道,这个API开发平台,用处就是给客户去调用现成得接口来完成某些事情得。 在讲API签名认证之前,我们先模拟一个场景并且介绍…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》
近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...