数据的创建、调用、修改、删除存储过程,以及第一类丢失更新(回滚丢失)和 第二类丢失更新(覆盖丢失/两次更新问题)

数据的创建存储过程、调用存储过程、修改存储过程、删除存储过程,以及第一类丢失更新(回滚丢失)和 第二类丢失更新(覆盖丢失/两次更新问题)

文章目录

  • 一、创建存储的语法
  • 二、调用存储过程
  • 三、修改存储过程
  • 四、删除存储过程
  • 五、**第一类丢失更新**(回滚丢失)
  • 六、**第二类丢失更新**(覆盖丢失/两次更新问题)


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建存储的语法

CREATE PROCEDURE 过程名称( [ [输入输出类型] 参数名 参数类型(宽度) , ... ] ) 
BEGIN
    SQL语句块
END $

其中输出输入的参数类型有以下三种:

  • IN :表示输入参数

    • 仅能从存储过程的调用者向存储过程传递数据(即由外向内传递)
  • OUT :表示输出参数

    • 仅能从存储过程内部将数值传递给存储过程的调用者(即由内向外传递)
  • INOUT :表示输入输出参数

    • 既能从存储过程的调用者向存储过程传递数据(即由外向内传递)
    • 又能从存储过程内部将数值传递给存储过程的调用者(即由内向外传递)
mysql> CREATE PROCEDURE register(IN userName VARCHAR(20),IN userPass VARCHAR(20),OUT userId INT)
    -> BEGIN
    -> INSERT INTO UserInfo(userName,userPass)VALUES(userName,userPass);
    -> SELECT LAT_INSERT_ID() INTO userId;
    -> END $

在这里插入图片描述
其中:

mysql> DELIMITER $

是来修改 定界符

之后遇到修改后的定界符就表明语句结束(因为语句中有原本的分界符,会冲突),等到存储过程创建完毕则需要将 定界符 修改为默认的 ;

DELIMITER ;

二、调用存储过程

在 MySQL 中调用存储过程可以通过 CALL 命令来实现:
代码如下(示例):

CALL 过程名称( [实参列表] )

根据实际情况为 存储过程 传递参数。

如果参数类型为 OUTINOUT 则需要定义变量并将变量作为存储过程的参数使用。

三、修改存储过程

代码如下(示例):

ALTER PROCEDURE 过程名称 [特征];
mysql> ALTER PROCEDURE register;

在这里插入图片描述

四、删除存储过程

通过 drop procedure 命令可以删除存储过程:

DROP PROCEDURE [IF EXISTS] 过程名称;

五、第一类丢失更新(回滚丢失)

隔离级别较高的:
在这里插入图片描述
隔离级别较低的:
在这里插入图片描述
但在MySQL数据库,任何隔离级别不允许第一类更新丢失。

六、第二类丢失更新(覆盖丢失/两次更新问题)

隔离级别较高的:
在这里插入图片描述
隔离级别较低的:
在这里插入图片描述
第二类丢失更新原因:MySQL可重复读默认采用的是快照读。快照读的一个问题也就是没有办法获取最新的数据。所以快照读是第二类更新丢失的一个主要原因。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/297612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【python实战】python一行代码,实现文件共享服务器

一行代码实现文件共享 在一个局域网内,需要共享一个文件夹里内容。 我们可以在任意一台有python环境的电脑上,迅速架起一个http协议的服务,然后将文件夹里的文件内容共享出来。是的仅仅需要一行代码 就是这么简单 把电脑的相关项目文件通…

Python中的有序字典是什么

有序字典 一、简介 Python中的字典的特性:无序性。 有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的。 二、普通字典 #! /usr/bin/env python3 # -*- coding:utf-8 -*- d1 {} d1[a] A d1[b…

【Unity】 HTFramework框架(四十七)编辑器日志中使用超链接的技巧

更新日期:2024年1月3日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 日志中使用超链接超链接-网络地址超链接-本地地址超链接-项目资源文件超链接-脚本对象 日志中使用超链接 在编辑器控制台Console中的日志是支持富文本的&…

使用Spring Cache优化数据库访问

使用Spring Cache优化数据库访问 在这篇博客中,我们将学习如何使用Spring Cache来优化数据库访问,提高系统性能。我们将创建一个简单的图书管理应用作为示例,并演示如何通过缓存减少对数据库的频繁查询。 1. 项目结构 首先,我们…

web自动化(6)——项目配置和Grid分布式

1. 框架的可配置性 项目之间的区别: 兼容性:有些项目只兼容chrome,有些只兼容Firefox等元素定位特点:有些项目闪现快,有的项目很慢有些项目集成Jenkins,不需要用python生成allure报告 如果想要我们的框架…

cesium键盘控制模型

效果: 由于对添加模型和更新位置api进行二次了封装,下面提供思路 1.添加模型 const person reactive({modelTimer: null,position: {lon: 104.07274,lat: 30.57899,alt: 1200,heading: 0,pitch: 0,roll: 0,}, }); window.swpcesium.addEntity.addMo…

主流大语言模型从预训练到微调的技术原理

引言 本文设计的内容主要包含以下几个方面: 比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优…

【教学类-43-16】 20240106 推算5-9宫格数独可能出现的不重复题量(N宫格数独模板数量的推算)

作品展示: 通过对各种已有结果的人工推算,目前得到两个结论 一、阶乘基本样式的数量【【123】【321】【231】【132】【312】【312】】6组 结论:阶乘等于出现的基本样式数量 以下N*N格会出现的最大排序数量(比如包含333222111这种…

玩转爱斯维尔 LaTeX 模板:定制技巧一网打尽!

简介 关于 LaTeX 小编写过一些推文: 适合撰写课程论文的 LaTeX 模板; LaTeX 常用数学符号汇总; 免费升级 overleaf 高级账户!; 如何下载使用期刊的 LaTeX 模板 本文基于常用的 Elsevier 期刊模板,小编分享个人常用的使用技巧&#xff0…

nvidia-smi 完整查看显卡型号

当我们在使用nvidia-smi查看显卡的型号的时候,会发现出现如下问题: 可以看到我们此时无法看到显卡的准确型号,只能看到NVIDIA GeForce ... 解决方法:使用如下命令即可完整显示显卡型号 nvidia-smi -L 如下所示:

APP自动化测试工具:八款推荐解析

如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。 uiautomator2 github地址:github.com/openatx/uia… UiAutomator 是 Google 提供的用来做安卓自动…

C语言中灵活多变的动态内存,malloc函数 free函数 calloc函数 realloc函数

文章目录 🚀前言🚀管理动态内存的函数✈️malloc函数✈️free函数✈️calloc函数✈️realloc函数 🚀在使用动态内存函数时的常见错误✈️对NULL指针的解引用✈️ 对动态开辟空间的越界访问✈️对非动态开辟内存使用free释放✈️使用free释放一…

新手养布偶猫如何选择猫主食冻干?K9、sc、希喂三个品牌推荐!

布偶猫是食肉动物,但由于肠胃脆弱敏感,所以在饮食上需要特别关注哦!为了给它们最好的呵护,现在有了主食冻干这种优质猫主食!它不仅符合猫咪的天然饮食习惯,还用了新鲜生肉做原料呢!营养满分不说…

我的隐私计算学习——联邦学习(2)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成 (三)联邦学习的算子 ------------------------ 算子是什么?--------------------------- ​ 从广义上讲,对任何函数进行某一项操作都可…

设计模式学习2

代理模式:Proxy 动机 “增加一层间接层”是软件系统中对许多复杂问题的一种常见解决方案。在面向对象系统中,直接食用某些对象会带来很多问题,作为间接层的proxy对象便是解决这一问题的常见手段。 2.伪代码: class ISubject{ pu…

SPI知识大全

目录 SPI介绍SPI分为硬件SPI与软件SPISPI工作模式和时序图硬件SPI编写软件SPI编写拓展: SPI介绍 SPI(Serial Peripheral Interface)是一种常用的通信接口,用于在两个设备之间进行数据传输。它通常用于板级通信,具有高…

SolidUI Gitee GVP

感谢Gitee,我是一个典型“吃软不吃硬”的人。奖励可以促使我进步,而批评往往不会得到我的重视。 我对开源有自己独特的视角,我只参与那些在我看来高于自身认知水平的项目。 这么多年来,我就像走台阶一样,一步一步参与…

Redis——centos7环境安装Redis6.2.14版本,make命令编译时报错:jemalloc/jemalloc.h:没有那个文件或目录

一、报错原因 在redis-6.2.14文件夹下有一个README.md文件,有如下一段话: 在构建 Redis 时,通过设置 MALLOC 环境变量来选择非默认的内存分配器。Redis 默认编译并链接到 libc malloc,但在 Linux 系统上,jemalloc 是…

AntV-G6 -- 将G6图表应用到项目中

1. 效果图 2. 安装依赖 npm install --save antv/g6 3. 代码 import { useEffect } from alipay/bigfish/react; import G6 from antv/g6;const data {id: root,label: 利息收入,subLabel: 3,283.456,ratio: 3,children: [{id: child-a,label: 平均利息,subLabel: 9%,ratio:…

【airsim】python控制airsim

使用airsim 1.8.1编译完成,进过block项目在cpp测试后,开始踩坑使用python。 使用AirSim\PythonClient\setup.py或者pip安装airsim。 python setup.py install或者 pip install airsim此时,windows电脑的环境信息 (air_py38) D:\code\Gith…